1.5 全局配置文件
全局配置文件可以對一些默認配置值進行修改。Spring Boot使用一個application.properties或者application.yaml的文件做爲全局配置文件,該文件存放在src/main/resource目錄或者類路徑的/config,通常會選擇resource目錄。接下來,將針對這兩種全局配置文件進行講解 :
1.5.1 application.properties配置文件
使用Spring Initializr方式構建Spring Boot項目時,會在resource目錄下自動生成一個空的application.properties文件,Spring Boot項目啓動時會自動加載application.properties文件。
咱們能夠在application.properties文件中定義Spring Boot項目的相關屬性,固然,這些相關屬性能夠是系統屬性、環境變量、命令參數等信息,也能夠是自定義配置文件名稱和位置mysql
server.port=8081spring
spring.datasource.driver-class-name=com.mysql.jdbc.Driversql
spring.config.additional-location= app
spring.config.location= spring-boot
spring.config.name=application工具
1234567891011
接下來,經過一個案例對Spring Boot項目中application.properties配置文件的具體使用進行講解
演示:
預先準備了兩個實體類文件,後續會演示將application.properties配置文件中的自定義配置屬性注入到Person實體類的對應屬性中
(1)先在項目的com.lagou包下建立一個pojo包,並在該包下建立兩個實體類Pet和Person單元測試
public class Pet {測試
private String type;ui
private String name;code
// 省略屬性getXX()和setXX()方法
// 省略toString()方法
}
1234567891011121314151617181920
@Component //用於將Person類做爲Bean注入到Spring容器中
@ConfigurationProperties(prefix =
"person") //將配置文件中以person開頭的屬性注入到該類中
public class Person {
private int id; //id
private String name; //名稱 private List hobby; //愛好 private String[] family; //家庭成員 private Map map; private Pet pet; //寵物
// 省略屬性getXX()和setXX()方法
// 省略toString()方法
}
1234567891011121314151617181920212223242526272829303132
@ConfigurationProperties(prefix =
「person」)註解的做用是將配置文件中以person開頭的屬性值經過setXX()方法注入到實體類對應屬性中
@Component註解的做用是將當前注入屬性值的Person類對象做爲Bean組件放到Spring容器中,只有這樣才能被@ConfigurationProperties註解進行賦值
(2)打開項目的resources目錄下的application.properties配置文件,在該配置文件中編寫須要對Person類設置的配置屬性
編寫application.properties配置文件時,因爲要配置的Person對象屬性是咱們自定義的,Spring Boot沒法自動識別,因此不會有任何書寫提示。在實際開發中,爲了出現代碼提示的效果來方便配置,在使用@ConfigurationProperties註解進行配置文件屬性值注入時,能夠在pom.xml文件中添加一個Spring Boot提供的配置處理器依賴:
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional>
</dependency>
12345678910
在pom.xml中添加上述配置依賴後,還須要從新運行項目啓動類或者使用「Ctrl+F9」快捷鍵(即Build Project)重構當前Spring Boot項目方可生效
(3)查看application.properties配置文件是否正確,同時查看屬性配置效果,打開經過IDEA工具建立的項目測試類,在該測試類中引入Person實體類Bean,並進行輸出測試
@RunWith(SpringRunner.class) // 測試啓動器,並加載Spring Boot測試註解
@SpringBootTest // 標記爲Spring Boot單元測試類,並加載項目的ApplicationContext上下文環境
class SpringbootDemoApplicationTests {
// 配置測試
@Autowired
private Person person;
@Test
void
configurationTest() {
System.out.println(person);
}
}12345678910111213141516171819202122232425262728