SpringBoot配置之application.propert
2019-08-17 本文已影响0人
hk_faith
简述
Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者src/main/resources/config下。在 src/main/resources/config 下的优先级高 。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。
自定义属性
在application.properties
com.example.name="MJ"
@RestController
public class HelloController {
@Value("${com.example.name}")
private String name;
@GetMapping("/user")
public String info(){
return name;
}
}
属性映射到类中
@Configuration
@ConfigurationProperties(prefix = "com.example")
public class ConfigBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
@EnableConfigurationProperties({ConfigBean.class})
public class HelloController {
@Autowired
ConfigBean configBean;
@GetMapping("/user2")
public String info2(){
String name = configBean.getName();
return name;
}
}
使用自定义配置文件
新建 test.properties
my.name="who"
@Configuration
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
@EnableConfigurationProperties({ConfigBean.class,ConfigTestBean.class})
public class HelloController {
@Autowired
ConfigBean configBean;
@Autowired
ConfigTestBean configTestBean;
@GetMapping("/user2")
public String info2(){
String name = configBean.getName();
return name;
}
@GetMapping("/user3")
public String info3(){
String name = configTestBean.getName();
return name;
}
}
@Component 或 @Configuration 都可以当 ,会被 当成 bean 来管理
随机值分配
my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.uuid=${random.uuid}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,222222]}
参数间引用
com.example.name="MJ"
com.example.say="hello"
com.example.example=${com.example.name} say : ${com.example.say}
Profile-多环境配置
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
- application-dev.properties:开发环境
- application-prod.properties:生产环境
想要使用对应的环境,只需要在application.properties中使用spring.profiles.active属性来设置,值对应上面提到的{profile},这里就是指dev、prod这2个。
启动项目动时候带上
java -jar xxx.jar --spring.profiles.active=dev