在开发过程中,我们常常会自定义一些属性值,比如第三方服务地址,图片服务器地址,常量值等等。这一章就整下如何获取自定义属性的值。

(这里接着上一章在application-dev.yml中自定义属性。然后用结合profile配置获取自定义属性的值,当然也可以直接在application.xml中定义

一,使用@Value

1.在application-dev.yml(application.yml)文件中定义自定义属性

八,springBoot-父子工程创建(idea)_spring

八,springBoot-父子工程创建(idea)_spring_02

​编辑

八,springBoot-父子工程创建(idea)_取值_03

八,springBoot-父子工程创建(idea)_取值_04

编辑

2.在IndexController中定义变量(实际开发中一般是不会定义在启动类中的,这里单纯为了学习获取自定义属性的方法)

@Value("${PEOPLE.name}")
private String name;

@Value("${PEOPLE.sex}")
private

八,springBoot-父子工程创建(idea)_spring_05

3.写一个接口返回姓名性别

@RequestMapping("/info")
@ResponseBody
public String getPeopleInfo(){
return name+":"+sex;
}

八,springBoot-父子工程创建(idea)_取值_06

4.启动后访问 ​​http://localhost:8088/dev/info​

八,springBoot-父子工程创建(idea)_取值_07

八,springBoot-父子工程创建(idea)_spring_08

编辑

二,使用@ConfigurationProperties(prefix=" ")

当自定义属性较多时,我们就要写很多的@Value取值,鉴于此,springboot提供了ConfigurationProperties方便取值。

1.使用ConfigurationProperties需要引入依赖


<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>

八,springBoot-父子工程创建(idea)_spring_09


2.使用方法:①,在类头部使用@ConfigurationProperties(prefix=" ")注解

                 ②,类文件中定义的变量需与applicaton文件中的变量保持一致,并生成geter/seter

                 ③,规范变量开头

3.代码如下:

@Controller
@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class})//自动配置
@ConfigurationProperties(prefix = "PEOPLE")
public class IndexContoller {

//入口
public static void main(String[] args) {
SpringApplication.run(IndexContoller.class,args);
}


private String name;

private String sex;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

@RequestMapping("/info")
@ResponseBody
public String getPeopleInfo(){
return name+":"+sex;
}

}

八,springBoot-父子工程创建(idea)_取值_10

启动项目,访问 ​​http://localhost:8088/dev/info​