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

Java中EnvironmentAware 接口的作用

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

研究背景

    我們?cè)诟阈碌呐渲弥行腘acos的時(shí)候,為了獲取新的配置中心的配置文件中配置的 dataId,以及配置 serverAddrnacosGroup 等信息,所以才研究 EnvironmentAware 接口的如果寫死話那豈不是太不像話了,那就太多的魔法值了,所以我們可以通過(guò) 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

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

源碼介紹以及使用方法

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

/**
   其實(shí)說(shuō)白了就是哪個(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 的配置文件配置的屬性值,這樣就不用我們將魔法值寫到代碼里面了

使用方式代碼示例

    通過(guò) NacosController 實(shí)現(xiàn)了 EnvironmentAware 這個(gè)接口,并且實(shí)現(xiàn)了 setEnvironment 方法,之后通過(guò) 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;
    }
    // 通過(guò) 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()
  • 通過(guò) environment 進(jìn)行配置信息獲取

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

相關(guān)文章

  • 使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問(wèn)題

    使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問(wèn)題

    重試的使用場(chǎng)景比較多,比如調(diào)用遠(yuǎn)程服務(wù)時(shí),由于網(wǎng)絡(luò)或者服務(wù)端響應(yīng)慢導(dǎo)致調(diào)用超時(shí),此時(shí)可以多重試幾次。用定時(shí)任務(wù)也可以實(shí)現(xiàn)重試的效果,但比較麻煩,用Spring Retry的話一個(gè)注解搞定所有,感興趣的可以了解一下
    2023-04-04
  • 為什么Java單例模式一定要加?volatile

    為什么Java單例模式一定要加?volatile

    這篇文章主要介紹了為什么Java單例一定要加volatile,指的是為什么懶漢模式中的私有變量要加volatile?帶著疑問(wèn)一起學(xué)習(xí)下面文章內(nèi)容吧
    2022-05-05
  • Java常用工具類—集合排序

    Java常用工具類—集合排序

    這篇文章主要介紹了Java集合排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java動(dòng)態(tài)代理(jdk與cglib)詳細(xì)解析

    java動(dòng)態(tài)代理(jdk與cglib)詳細(xì)解析

    靜態(tài)代理:由程序員創(chuàng)建或特定工具自動(dòng)生成源代碼,再對(duì)其編譯。在程序運(yùn)行前,代理類的.class文件就已經(jīng)存在了
    2013-09-09
  • Mybatis 中如何判斷集合的size

    Mybatis 中如何判斷集合的size

    這篇文章主要介紹了在Mybatis中判斷集合的size操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java代碼精簡(jiǎn)之道(推薦)

    Java代碼精簡(jiǎn)之道(推薦)

    這篇文章主要給大家介紹了Java代碼精簡(jiǎn)之道,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringMVC找不到Controller路徑的解決方案

    SpringMVC找不到Controller路徑的解決方案

    這篇文章主要介紹了SpringMVC找不到Controller路徑的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 解讀JAVA中的位運(yùn)算操作

    解讀JAVA中的位運(yùn)算操作

    這篇文章主要介紹了JAVA中的位運(yùn)算操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java Spring Boot實(shí)戰(zhàn)練習(xí)之單元測(cè)試篇

    Java Spring Boot實(shí)戰(zhàn)練習(xí)之單元測(cè)試篇

    單元測(cè)試(unit testing),是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。對(duì)于單元測(cè)試中單元的含義,一般來(lái)說(shuō),要根據(jù)實(shí)際情況去判定其具體含義,如C語(yǔ)言中單元指一個(gè)函數(shù),Java里單元指一個(gè)類,圖形化的軟件中可以指一個(gè)窗口或一個(gè)菜單等
    2021-10-10
  • springboot 集成支付寶支付的示例代碼

    springboot 集成支付寶支付的示例代碼

    這篇文章主要介紹了springboot 集成支付寶支付的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

黔东| 花莲县| 姜堰市| 永吉县| 连州市| 墨竹工卡县| 婺源县| 莱西市| 奈曼旗| 邯郸县| 万山特区| 黔南| 邵阳县| 昭通市| 宣武区| 贺兰县| 上杭县| 南阳市| 收藏| 巴中市| 秭归县| 竹溪县| 潮州市| 三穗县| 新昌县| 攀枝花市| 揭西县| 丰城市| 慈利县| 黑山县| 苍溪县| 凯里市| 越西县| 衡阳县| 息烽县| 普陀区| 余干县| 陆丰市| 泰和县| 利辛县| 斗六市|