详细介绍注解@ConfigurationProperties使用
文章目錄
- 一、@ConfigurationProperties介紹
- 一、@ConfigurationProperties使用詳情
寫在前面:
我是「境里婆娑」。我還是從前那個少年,沒有一絲絲改變,時間只不過是考驗,種在心中信念絲毫未減,眼前這個少年,還是最初那張臉,面前再多艱險不退卻。
寫博客的目的就是分享給大家一起學(xué)習(xí)交流,如果您對 Java感興趣,可以關(guān)注我,我們一起學(xué)習(xí)
前言:前兩天在做項目時候,一個需求是要求兩個bean啟動要互斥,后來經(jīng)過一番查找發(fā)現(xiàn)SpringBoot這個注解@ConfigurationProperties可以實現(xiàn)此功能。經(jīng)過一番學(xué)習(xí)來分享給大家。
一、@ConfigurationProperties介紹
@ConditionalOnProperty一個最大的好處是可以控制@Configuration是否生效。
@ConditionalOnProperty屬性介紹:
@ConditionalOnProperty如何控制@Configuration是否生效,具體操作是通過其兩個屬性name以及havingValue來實現(xiàn)的。
| true | true |
| false | false |
| true | false |
| false | true |
name和havingValue屬性相同的時候@Configuration生效,否則不生效。
一、@ConfigurationProperties使用詳情
1、在application.properties添加配置文件
myapp.mail.localPath=zsl myapp.mail.enable=true2、創(chuàng)建兩個配置類
Conditional1Configuration配置類
@Configuration @ConfigurationProperties(prefix = "myapp.mail") @ConditionalOnProperty(prefix = "myapp.mail",name = "enable",havingValue = "false") public class Conditional1Configuration {private String localPath;private Boolean enable;@Beanpublic Conditional1 test1() {Conditional1 test = new Conditional1();test.setEnable(enable);test.setUser(localPath);return test;}public String getLocalPath() {return localPath;}public void setLocalPath(String localPath) {this.localPath = localPath;}public Boolean getEnable() {return enable;}public void setEnable(Boolean enable) {this.enable = enable;} }ConditionalConfiguration配置類
@Configuration @ConfigurationProperties(prefix = "myapp1.mail") @ConditionalOnProperty(prefix = "myapp.mail",name = "enable",havingValue = "true",matchIfMissing = true) public class ConditionalConfiguration {@Value("${myapp.mail.enable}")private Boolean enable;private String localPath;@Beanpublic Conditional test2() {Conditional test = new Conditional();test.setEnable(enable);test.setUser(localPath);return test;}public Boolean getEnable() {return enable;}public void setEnable(Boolean enable) {this.enable = enable;}public String getLocalPath() {return localPath;}public void setLocalPath(String localPath) {this.localPath = localPath;} }當我把配置文件myapp.mail.enable改為true時候這個配置ConditionalConfiguration啟動,當改為false時候 Conditional1Configuration啟動。
至此,我們怎么使用注解@ConfigurationProperties介紹完畢。
如果想更詳細查看以上所有代碼請移步到github:如何使用注解@ConfigurationProperties
總結(jié)
以上是生活随笔為你收集整理的详细介绍注解@ConfigurationProperties使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源调度框架xxl-job集成Sprin
- 下一篇: 警惕由于使用YYYY-MM-dd引发的一