自定義bean屬性
1.定義bean屬性
// 通過@ConfigurationProperties加載properties文件內的配置,
// 通過prefix屬性指定properties的配置的前綴,通過locations指定properties文件的位置
@ConfigurationProperties(prefix = "com.dudu")
public class ConfigBean {
private String name;
private String want;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWant() {
return want;
}
public void setWant(String want) {
this.want = want;
}
}
// 1.4版本的可以 通過@ConfigurationProperties加載properties文件內的配置,
// 通過prefix屬性指定properties的配置的前綴,通過locations指定properties文件的位置
//1.5版本后沒有locations屬性了,需要配合使用后@Configuration
// 和@PropertySource("classpath:test.properties")來指定properties文件的位置
@Configuration
@ConfigurationProperties(prefix = "com.md")
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
private String name;
private String want;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWant() {
return want;
}
public void setWant(String want) {
this.want = want;
}
}
2.在屬性文件配置
3.啟用bean屬性配置
@EnableConfigurationProperties({ConfigBean.class, ConfigTestBean.class})
在配置文件提示自定義屬性
1.加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2.mvn compile
指定配置文件位置
1.可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新位置
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar
--spring.config.location=D:/application.properties
2.外部配置加載順序
SpringBoot也可以從以下位置加載配置:優先級從高到低;高優先級的配置覆蓋低優先級的配置,所有的配置會形成互補配置。
- 當前目錄下的一個/config子目錄
- 當前目錄
- 一個classpath下的/config包
- classpath根路徑(root)
這個列表是按優先級排序的(列表中位置高的將覆蓋位置低的)
1.命令行參數
2.來自java:comp/env的JNDI屬性
3.Java系統屬性(System.getProperties())
4.操作系統環境變量
5.RandomValuePropertySource配置的random.*屬性值
6.jar包外部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
7.jar包內部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
8.jar包外部的application.properties或application.yml(不帶spring.profile)配置文件
9.jar包內部的application.properties或application.yml(不帶spring.profile)配置文件