Spring @ConfigurationProperties 和 @EnableConfigurationProperties 的使用
- @ConfigurationProperties 的使用
@Component
@ConfigurationProperties("dev") // 将其和配置文件中的dev开头的属性进行关联
public class DevConfig {
private String user;//配置文件中的dev.user 的映射
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
properties文件中的
dev.user=xxx
- @EnableConfigurationProperties的使用需要搭配@ConfigurationProperties
//注意这里没有@Component
@ConfigurationProperties("enbale.dev")
public class EnableDevConfig {
private String user;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
//配置的读取案例
@RestController
@RequestMapping("/config")
@EnableConfigurationProperties(EnableDevConfig.class)
//其他配置文件
导入外部其他的配置文件,找不到就忽略
//@PropertySource(value = {"classpath:other.properties"},ignoreResourceNotFound = true)
public class ConfigController {
@Value("${other.port}")
private int otherPort;
@Value("${server.port}")
private int port;
@Autowired
private DevConfig devConfig;
@Autowired(required = false)//这里注入
private EnableDevConfig enableDevConfig;
@RequestMapping("/port")
private int port(){
return port;
}
@RequestMapping("/devconfig")
public String devconfig(){
return devConfig.getUser();
}
@RequestMapping("/otherPort")
public int otherPort(){
return otherPort;
}
@RequestMapping("/enableDevconfig")
public String enableDevconfig(){
return enableDevConfig.getUser()+devConfig.getUser();
}
}
server.port=8888
#Servler 启动就初始化
spring.mvc.servlet.load-on-startup=100
dev.user=xxx
enbale.dev.user=xxx
other.port=123
other.condition=true
other.result=ConditionalConfig