欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中EnvironmentAware 接口的作用

 更新時(shí)間:2022年06月21日 10:23:23   作者:沙漠中的曼陀羅  
本文主要介紹了Java中EnvironmentAware 接口的作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

研究背景

    我們?cè)诟阈碌呐渲弥行腘acos的時(shí)候,為了獲取新的配置中心的配置文件中配置的 dataId,以及配置 serverAddr、nacosGroup 等信息,所以才研究 EnvironmentAware 接口的如果寫死話那豈不是太不像話了,那就太多的魔法值了,所以我們可以通過 environmentAware 這個(gè)接口進(jìn)行從配置文件中【application.properties】獲取配置的配置中心的信息詳情

nacos.config.server-addr=IP地址
nacos.config.data-id=api.properties
nacos.config.group=DEFAULT_GROUP
nacos.config.namespace=public
nacos.config.username=nacos
nacos.config.password=nacos
nacos.config.auto-refresh=true
nacos.config.type=properties
nacos.config.bootstrap.enable=true
nacos.config.bootstrap.log-enable=true

    之前沒有注意過這個(gè)接口【但是在之前看多租戶的工具源碼的時(shí)候看到過這個(gè)接口】,所以通過本次項(xiàng)目中的需求來好好研究一下這個(gè)接口的問題

源碼介紹以及使用方法

    其實(shí)說白了就是哪個(gè)接口需要獲取配置,那么那個(gè)接口就需要進(jìn)行實(shí)現(xiàn)該接口 EnvironmentAware并實(shí)現(xiàn)里面的 setEnvironment方法

/**
   其實(shí)說白了就是哪個(gè)接口需要獲取配置,那么那個(gè)接口就需要進(jìn)行實(shí)現(xiàn)該接口并實(shí)現(xiàn)里面的set方法
*/
public interface EnvironmentAware extends Aware {

	void setEnvironment(Environment environment);

}

作用

    所有注冊(cè)到 Spring容器內(nèi)的 bean,只要該bean 實(shí)現(xiàn)了 EnvironmentAware接口,并且進(jìn)行重寫了setEnvironment方法的情況下,那么在工程啟動(dòng)時(shí)就可以獲取得 application.properties 的配置文件配置的屬性值,這樣就不用我們將魔法值寫到代碼里面了

使用方式代碼示例

    通過 NacosController 實(shí)現(xiàn)了 EnvironmentAware 這個(gè)接口,并且實(shí)現(xiàn)了 setEnvironment 方法,之后通過 environment 這個(gè)對(duì)象進(jìn)行配置信息獲取

@RestController
@RequestMapping("/nacos")
public class NacosController implements EnvironmentAware {

    private final static String NACOS_DATA_ID = "nacos.config.data-id";
    private final static String NACOS_GROUP = "nacos.config.group";

    private static String dataId = "";
    private static String group = "";

    @NacosInjected
    private ConfigService configService;

    @Autowired
    private Environment environment;

    @Override
    public void setEnvironment(Environment environment) {
        this.environment = environment;
    }
    // 通過 environment 獲取配置信息
    @PostConstruct
    private void init() {
        dataId = environment.getProperty(NACOS_DATA_ID);
        group = environment.getProperty(NACOS_GROUP);
    }

    /**
     * 發(fā)布配置
     * @return
     */
    @RequestMapping(value = "/publishConfig",method = RequestMethod.GET)
    public boolean publishConfig() {
        boolean res = false;
        try {
            res = configService.publishConfig(dataId, group, "發(fā)布配置");
        } catch (NacosException e) {
            e.printStackTrace();
        }
        System.out.println(res);
        return res;
    }
}

成功獲取到了配置信息,我們?cè)谂渲梦募性O(shè)置的 nacos.config.data-id=api.properties,所以這里獲取的值是正確

總結(jié)

  • 哪個(gè)類需要獲取配置信息那么該類就需要進(jìn)行該接口 environmentAware 的實(shí)現(xiàn)
  • 實(shí)現(xiàn) environmentAware 這個(gè)接口所提供的方法 setEnvironment()
  • 通過 environment 進(jìn)行配置信息獲取

到此這篇關(guān)于Java中EnvironmentAware 接口的作用的文章就介紹到這了,更多相關(guān)Java EnvironmentAware 接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)英文翻譯程序

    java實(shí)現(xiàn)英文翻譯程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)英文翻譯程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Java之SpringCloud nocos注冊(cè)中心講解

    Java之SpringCloud nocos注冊(cè)中心講解

    這篇文章主要介紹了Java之SpringCloud nocos注冊(cè)中心講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法)

    java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法)

    這篇文章主要介紹了java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法),需要的朋友可以參考下
    2020-08-08
  • Java規(guī)則引擎easy-rules詳細(xì)介紹

    Java規(guī)則引擎easy-rules詳細(xì)介紹

    本文主要介紹了Java規(guī)則引擎easy-rules詳細(xì)介紹,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • log4j的配置文件詳細(xì)解析

    log4j的配置文件詳細(xì)解析

    以下小編主要為大家介紹一下log4j的配置文件各個(gè)配置項(xiàng)的含義。需要的朋友可以過來參考下
    2013-08-08
  • java實(shí)現(xiàn)日歷功能

    java實(shí)現(xiàn)日歷功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)日歷功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Mybatis 實(shí)現(xiàn)動(dòng)態(tài)組裝查詢條件,仿SQL模式

    Mybatis 實(shí)現(xiàn)動(dòng)態(tài)組裝查詢條件,仿SQL模式

    這篇文章主要介紹了Mybatis 實(shí)現(xiàn)動(dòng)態(tài)組裝查詢條件,仿SQL模式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot2零基礎(chǔ)到精通之映射與常用注解請(qǐng)求處理

    SpringBoot2零基礎(chǔ)到精通之映射與常用注解請(qǐng)求處理

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)映射、常用注解和方法參數(shù)的小技巧
    2022-03-03
  • Java插入排序算法實(shí)現(xiàn)方法例子

    Java插入排序算法實(shí)現(xiàn)方法例子

    所謂排序,是將一組數(shù)據(jù)按照特定順序重新排列的過程,穩(wěn)定排序算法中相同鍵值的元素排序后保持原有順序,直接插入排序和希爾排序是插入排序的兩種形式,這篇文章主要介紹了Java插入排序算法實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • Java線程創(chuàng)建的四種方式總結(jié)

    Java線程創(chuàng)建的四種方式總結(jié)

    這篇文章主要介紹了Java線程創(chuàng)建的四種方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論