在SpringBoot裏能夠經過四個註解進行配置文件的注入,分別是:java
@ConfigurationProperties @Value @PropertySource @ImportResourcespring
居中好比個人配置文件application.yml裏面是這種springboot
person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: - lisi - zhaoliu dog: name: 小狗 age: 12
JavaBeanapp
/** - 將配置文件中配置的每個屬性的值,映射到這個組件中 - @ConfigurationProperties:告訴SpringBoot將本類中的全部屬性和配置文件中相關的配置進行綁定;prefix = "person":指定 配置文件中哪一個前綴下面的全部屬性進行 一一 映射 - 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能, - 使其成爲組件能夠經過下面的兩種中的任何一種方式 1.@Component //若是這裏添加了註解那麼在自動配置類的時候就不用添加 2.@EnableConfigurationProperties(Person.class)註解. */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog; }
@Value 只能從application.yml中讀取spring-boot
@Component @ConfigurationProperties(prefix = "person") @Validated public class Person { //lastName必須是郵箱格式 @Email @Value("${person.last-name}") private String lastName; @Value("#{11*2}") private Integer age; @Value("true") private Boolean boss;
若是說,咱們只是在某個業務邏輯中須要獲取一下配置文件中的某項值,使用@Value; 若是說,咱們專門編寫了一個javaBean來和配置文件進行映射,咱們就直接使用@ConfigurationProperties;ui
@PropertySource:加載指定的配置文件(非application.yml);必需要加 @Component,讓其spring進行管理 須要配合@ConfigurationProperties(prefix = "") 指定prefix 綁定到JavaBean中spa
* 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能; * @ConfigurationProperties(prefix = "person」) 默認從全局配置文件中獲取值 即默認只能從 application.properties 或者 application.yml 中獲取; * */ @Component @ConfigurationProperties(prefix = "person") @PropertySource(value = {"classpath:person.properties"}) @Data public class PersonConfig { private String lastName; private String firstName; }
person.properties 文件code
person.lastName=johnny persong.firstName=candy
導入Spring的配置文件 xml 格式的 放在 主運行類上,Spring Boot裏面沒有Spring的配置文件,咱們本身編寫的配置文件,也不能自動識別xml
想讓Spring的配置文件生效,加載進來;@ImportResource標註在一個配置類上blog
@ImportResource(locations = {"classpath:bean.xml"}) @SpringBootApplication public class SpringBoot01HelloworldQuickApplication { } bena.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="helloService" class="com.atguigu.springboot.service.HelloService"></bean> </beans>
做用: 配置文件處理器的主要做用是爲了 在編寫配置文件的時候有提示功能
<--導入配置文件處理器,配置文件進行綁定就會有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
我的博客系統:https://www.askajohnny.com 歡迎訪問! 本文由博客一文多發平臺 OpenWrite 發佈!