配置文件
server:
port: 1017
user:
alex:
name: zhangqianzhi
age: 18
email: 764468834@qq.com
test:
msg: 环境读取
color:
red: 红色
green: 绿色
yellow: 黄色
第一种读取方式@value
这种方式适用于读取配置文件中较少的值。
代码实例:
@Value("${server.port}")
public String port;
注:需要在类上标注@Component 、 @Configuration 、@RestController 的 其中的一个,根据使用场景来确定。
第二种读取方式@ConfigurationProperties
如果读取的值较多,需要一个javaBean专门来映射配置的话,一般推荐使用 @ConfigurationProperties
/**
* @author zqz
* @version 1.0
* @date 2021/11/12 15:49
*/
@ConfigurationProperties(prefix = "user.alex")
@RestController
@Configuration
public class HelloController {
private String name;
private Integer age;
@GetMapping("/hello")
public String getHello(){
return "姓名:"+name+",年龄:"+age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
这种读取方式需要引入jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
如果需要将去的值用static来修饰需要这样
@RestController
@RequestMapping("/color")
public class ColorController {
private static String READ;
private static String YELLOW;
private static String GREEN;
@Value("${color.red}")
public void setRead(String read) {
ColorController.READ = read;
}
@Value("${color.yellow}")
public void setYellow(String yellow) {
ColorController.YELLOW = yellow;
}
@Value("${color.green}")
public void setGreen(String green) {
ColorController.GREEN = green;
}
@GetMapping("/getColor")
public String get(){
return READ+YELLOW+GREEN;
}
}
第三种读取方式@Environment
@RestController
@RequestMapping("/hello")
public class TestConfigController {
@Autowired
private Environment evn;
@GetMapping("/evn")
public String evn(){
return evn.getProperty("test.msg");
}
}