自定義一些配置屬性的時候,也希望像達到像Springboot中自動提示一樣的效果,無論是自己配置還是交接給別人都頗為方便。
1. 實現配置自動裝配首先使用注解@ConfigurationProperties,該注解參數為要配置的屬性的前綴
如配置屬性為test.name,表示不同的服務器上有特殊的名字,注解為
@ConfigurationProperties("test")
2. 實現一個實體類,類的屬性名稱必須與外部屬性的名稱匹配,類的屬性必須有set函數,spring通過set方法注入屬性值。沒有的話,無法自動裝配。
也可以使用@Data注解,簡化代碼,@Data注解已為類提供了 equals()、hashCode()、toString() 方法。
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @Configuration @ConfigurationProperties("test") public class TestConfig { /**服務器名字**/ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
3. 配置文件中加上配置
test.name=zs
有上面三步就可以實現配置屬性自動裝配
4. 如果要實現在配置文件中自動提示屬性值,還需要引入spring-boot-configuration-processor依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
在@ConfigurationProperties中也提示了推薦添加spring-boot-configuration-processor依賴
引入依賴之后,通過maven再Update Project,在target\classes\META-INF文件下會生成配置屬性的元文件
該文件中對屬性進行了描述
在配置文件中使用test配置時,就可以自動提示屬性和注釋