最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中的@EnableConfigurationProperties注解詳細解析

 更新時間:2024年01月31日 08:51:19   作者:你的小伙伴啊  
這篇文章主要介紹了SpringBoot中的@EnableConfigurationProperties注解詳細解析,如果一個配置類只配置@ConfigurationProperties注解,而沒有使用@Component或者實現(xiàn)了@Component的其他注解,那么在IOC容器中是獲取不到properties 配置文件轉(zhuǎn)化的bean,需要的朋友可以參考下

1.概述

@EnableConfigurationProperties注解的作用是:使 使用 @ConfigurationProperties 注解的類生效。

如果一個配置類只配置@ConfigurationProperties注解,而沒有使用@Component或者實現(xiàn)了@Component的其他注解,那么在IOC容器中是獲取不到properties 配置文件轉(zhuǎn)化的bean。說白了 @EnableConfigurationProperties 相當于把使用 @ConfigurationProperties 的類進行了一次注入。

簡單點說@EnableConfigurationProperties的功能類似于@Component。

2.測試

2.1 使用 @EnableConfigurationProperties 進行注冊

@ConfigurationProperties(prefix = "service.properties")
public class HelloServiceProperties {
    private static final String SERVICE_NAME = "test-service";
    private String msg = SERVICE_NAME;
       set/get
}
@Configuration
@EnableConfigurationProperties(HelloServiceProperties.class)
@ConditionalOnClass(HelloService.class)
@ConditionalOnProperty(prefix = "hello", value = "enable", matchIfMissing = true)
public class HelloServiceAutoConfiguration {
}
@RestController
public class ConfigurationPropertiesController {
    @Autowired
    private HelloServiceProperties helloServiceProperties;
    @RequestMapping("/getObjectProperties")
    public Object getObjectProperties () {
        System.out.println(helloServiceProperties.getMsg());
        return myConfigTest.getProperties();
    }
}

配置文件application.properties

service.properties.name=my-test-name
service.properties.ip=192.168.1.1
service.user=kayle
service.port=8080

一切正常,但是 HelloServiceAutoConfiguration 頭部不使用 @EnableConfigurationProperties,測訪問報錯。

2.2 使用 @Component 注冊

不使用 @EnableConfigurationProperties 進行注冊,使用 @Component 注冊

@ConfigurationProperties(prefix = "service.properties")
@Component
public class HelloServiceProperties {
    private static final String SERVICE_NAME = "test-service";
    private String msg = SERVICE_NAME;
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

Controller 不變,一切正常,如果注釋掉 @Component 測啟動報錯。 由此證明,兩種方式都是將被 @ConfigurationProperties 修飾的類,加載到 Spring Env 中。

3.項目中的使用場景

如下,在配置類NacosConfigAutoConfiguration的頭上加注解@EnableConfigurationProperties(NacosConfigProperties.class),

而在NacosConfigProperties配置類本身并沒有實現(xiàn)了@Component相關(guān)的注解,也就是說運行項目時,不會直接把NacosConfigProperties配置類注入到Spring 容器中,而是在執(zhí)行NacosConfigAutoConfiguration這個配置類時才會去把NacosConfigProperties類注入到spring

如下,NacosConfigProperties類本身并沒有@Component相關(guān)注解:

到此這篇關(guān)于SpringBoot中的@EnableConfigurationProperties注解詳細解析的文章就介紹到這了,更多相關(guān)@EnableConfigurationProperties注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 實現(xiàn)迷宮回溯算法示例詳解

    java 實現(xiàn)迷宮回溯算法示例詳解

    這篇文章主要介紹了java 實現(xiàn)迷宮回溯算法示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 2021年最新Redis面試題匯總(2)

    2021年最新Redis面試題匯總(2)

    在程序員面試過程中redis相關(guān)的知識是常被問到的話題。這篇文章主要介紹了幾道Redis面試題,整理一下分享給大家,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 如何基于sqlite實現(xiàn)kafka延時消息詳解

    如何基于sqlite實現(xiàn)kafka延時消息詳解

    這篇文章主要給大家介紹了關(guān)于如何基于sqlite實現(xiàn)kafka延時消息的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • SpringBoot集成Mybatis實現(xiàn)對多數(shù)據(jù)源訪問原理

    SpringBoot集成Mybatis實現(xiàn)對多數(shù)據(jù)源訪問原理

    本文主要分析討論在SpringBoot應(yīng)用中我們該如何配置SqlSessionFactoryBean對象,進而實現(xiàn)對多個不同的數(shù)據(jù)源的操縱,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java多線程之讀寫鎖分離設(shè)計模式

    Java多線程之讀寫鎖分離設(shè)計模式

    這篇文章主要介紹了Java多線程讀寫鎖分離設(shè)計模式,主要利用Java到嗎完成read read 并行化、read write 不允許、write write 不允許幾項任務(wù),需要的朋友可以參考一下
    2021-10-10
  • ToStringBuilder類的一些心得

    ToStringBuilder類的一些心得

    ToStringBuilder類的一些心得,需要的朋友可以參考一下
    2013-02-02
  • Java實現(xiàn)Huffman編碼的示例代碼

    Java實現(xiàn)Huffman編碼的示例代碼

    Huffman編碼是一種編碼方式,本文主要介紹了Java實現(xiàn)Huffman編碼的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法

    Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法

    Data Access Object數(shù)據(jù)訪問對象模式在Java操作數(shù)據(jù)庫部分的程序設(shè)計中經(jīng)常被使用到,這里我們就來看一下Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法:
    2016-06-06
  • java制作復(fù)制文件工具代碼分享

    java制作復(fù)制文件工具代碼分享

    如果目標位置沒有同名文件,則直接拷貝過去;如果目標位置已有同名文件,則比對文件的最后修改日期,來進行覆蓋或者忽略。程序會在可以在復(fù)制過程中自動創(chuàng)建目錄,并生成log文件,創(chuàng)建了哪些目錄、文件,覆蓋了哪些文件、跳過了哪些文件,文件的時間、位置等信息都一目了然
    2014-01-01
  • 深入了解Java中的反射機制(reflect)

    深入了解Java中的反射機制(reflect)

    Java的反射機制允許我們對一個類的加載、實例化、調(diào)用方法、操作屬性的時期改為在運行期進行,這大大提高了代碼的靈活度,本文就來簡單講講反射機制的具體使用方法吧
    2023-05-05

最新評論

绿春县| 沅陵县| 璧山县| 滨州市| 洛宁县| 龙胜| 海门市| 宁德市| 彰武县| 彩票| 岱山县| 瑞安市| 枣强县| 璧山县| 五原县| 武汉市| 渭源县| 齐齐哈尔市| 荔波县| 巩义市| 荃湾区| 绥中县| 潜山县| 炎陵县| 子长县| 隆尧县| 全椒县| 龙井市| 武穴市| 荥阳市| 铁岭市| 额尔古纳市| 巴青县| 赣榆县| 丹凤县| 鹿泉市| 广南县| 定安县| 湖口县| 江孜县| 开化县|