springboot中自定義屬性實體類和應用


我們在當初學習SSM的時候學習過@Value這個屬性,可以將配置文件中的屬性加載到想要加載的類中,這個當然是一個可行的辦法,但是如果屬性有很多一直寫@Value也是一件很麻煩的事情,現在我們可以用@ConfigurationProperties@EnableConfigurationProperties這兩個注解完成這個問題。

具體應用

  • 配置文件如下:
whoami:
  auto-scan: false
  auto-del: true

上面的配置文件就相當於一個例子,沒有什么作用
下面我們寫自定義的屬性類

  • 屬性類:

@ConfigurationProperties(prefix = "whoami")的作用就是將whoami的前綴的配置加載到這個實體類中

@Data
@ConfigurationProperties("whoami")
public class AppProperties {
    private Boolean autoDel = false;

    private Boolean autoScan = true;

}

在這里我們可以看出來,實體類里面的屬性默認值和配置文件正相反,而且配置文件的屬性寫法是'-'風格,而自定義文件里面的是駝峰寫法,其實只要能對應就完全沒問題。

  • 驗證一下是否導入

先說一下@EnableConfigurationProperties的作用,其實就是讓@ConfigurationProperties生效

@Configuration
@EnableConfigurationProperties(AppProperties.class)
public class FilterConfiguration {

    @Autowired
    AppProperties appProperties;

    @Bean
    public FilterRegistrationBean<LogFilter> initLogFilter(){
        log.info("屬性配置;{}",appProperties.getAutoDel());
        ...

上面的代碼是一個配置類,我們可以看到,我們在初始化一個過濾器的時候順便打印了AutoDel這個屬性,,運行一下,可以看到打印台的信息

在這里我們可以看到,打印出來的是我們配置文件的信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM