簡(jiǎn)述
Spring Boot使用了一個(gè)全局的配置文件application.properties,放在src/main/resources目錄下或者src/main/resources/config下。在 src/main/resources/config 下的優(yōu)先級(jí)高 。Sping Boot的全局配置文件的作用是對(duì)一些默認(rèn)配置的配置值進(jìn)行修改。
自定義屬性
在application.properties
com.example.name="MJ"
@RestController
public class HelloController {
@Value("${com.example.name}")
private String name;
@GetMapping("/user")
public String info(){
return name;
}
}
屬性映射到類(lèi)中
@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 都可以當(dāng) ,會(huì)被 當(dāng)成 bean 來(lái)管理
隨機(jī)值分配
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]}
參數(shù)間引用
com.example.name="MJ"
com.example.say="hello"
com.example.example=${com.example.name} say : ${com.example.say}
Profile-多環(huán)境配置
在Spring Boot中多環(huán)境配置文件名需要滿(mǎn)足application-{profile}.properties的格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:
- application-dev.properties:開(kāi)發(fā)環(huán)境
- application-prod.properties:生產(chǎn)環(huán)境
想要使用對(duì)應(yīng)的環(huán)境,只需要在application.properties中使用spring.profiles.active屬性來(lái)設(shè)置,值對(duì)應(yīng)上面提到的{profile},這里就是指dev、prod這2個(gè)。
啟動(dòng)項(xiàng)目動(dòng)時(shí)候帶上
java -jar xxx.jar --spring.profiles.active=dev