1. 程式人生 > >springBoot 獲取配置的方式(5種)

springBoot 獲取配置的方式(5種)

一、利用@PropertySource獲取resource下面的資Environment獲取屬性

@Configuration
@EnableTransactionManagement
@PropertySource(value = {"classpath:DBsource.properties"})
public class DBBeanConfig {
    @Autowired
private Environment env;

    @Bean(destroyMethod = "close")
    public DataSource dataSource(){
        DruidDataSource dataSource = new 
DruidDataSource(); dataSource.setDriverClassName(env.getProperty("source.driverClassName").trim()); dataSource.setUrl(env.getProperty("source.url").trim()); dataSource.setUsername(env.getProperty("source.username").trim()); dataSource.setPassword(env.getProperty("source.password"
).trim()); return dataSource; }
}

二、@PropertySource獲取resource下面的資源,@ConfigurationProperties找到該資源的頭部@Value注入屬性.

@PropertySource({"classpath:redis-config.properties"})
@ConfigurationProperties(prefix="spring.redis")
public class RedisConfig {

    @Value("${host}")
    private  String  host;
    @Value
("${port}") private int port; }

三、@ConfigurationProperties找到該資源的頭部,通過getter、setter方法注入及獲取配置

@PropertySource({"classpath:redis-config.properties"})
@ConfigurationProperties(prefix="spring.redis")
public class RedisConfig2 {

    private  String  host;
    private  int  port;

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}

四、若是獲取yml中的屬性,可以直接注入

@Value("${spring.redis.host}")

private static String host;

五、利用PropertiesLoaderUtil載入配置檔案

public class RedisConfig3 {

    public static String  host;
    public static int  port;
    private static String property="redis-config.properties";

    private static RedisConfig3 mConfig;
    static {
        mConfig=loadConfig();
    }
    public  static  RedisConfig3 loadConfig(){
        if (mConfig==null){
            mConfig=new RedisConfig3();
            Properties properties = null;
            try {
                properties = PropertiesLoaderUtils.loadAllProperties(property);

                host=properties.getProperty("spring.redis.host");
                port=Integer.valueOf(properties.getProperty("spring.redis.port"));
                System.out.println(host+":"+port);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return mConfig;
    }

    public RedisConfig3 getInstance(){
        return mConfig;
    }
}

相關推薦

springBoot 獲取配置方式5

一、利用@PropertySource獲取resource下面的資源,Environment獲取屬性@Configuration @EnableTransactionManagement @PropertySource(value = {"classpath:DBsource

springboot5讀取配置方式5:通過applicationContext.xml讀取

2.通過config讀取指定檔案:可以把同一類的bean進行統一管理,然後通過config指定讀取配置檔案/** * 學生實體類 * Created by ASUS on 2018/5/4 */ public class

項目一:第十二天 1、常見權限控制方式 2、基於shiro提供url攔截方式驗證權限 3、在realm中授權 5、總結驗證權限方式 6、用戶註銷7、基於treegrid實現菜單展示

eal 重復數 規則 認證通過 delete get 數據庫 filter 登陸 1 課程計劃 1、 常見權限控制方式 2、 基於shiro提供url攔截方式驗證權限 3、 在realm中授權 4、 基於shiro提供註解方式驗證權限 5、 總結驗證權限方式(四種) 6、

js幾繼承方式

返回 前言 接口繼承 保留 新增 this per 動物類 col JS實現繼承的幾種方式前言:大多數語言都支持兩種繼承方式: 接口繼承和實現繼承 ,而javaScript中無法實現接口繼承,javaScript只支持實現繼承,而且其實現繼承主要是依靠原型鏈來實現。主要繼承

java23設計模式之建立型設計模式5

 23種設計模式可以分為三類:建立型模式、結構性設計模式、行為型設計模式。 本文將會從淺至深的講解建立型設計模式。 建立型設計模式有: AbstractFactory ( 抽象工廠 ) FactoryMethod ( 工廠方法 ) Singleton ( 單態模式 ) Builde

解析SpringBoot配置檔案.yml/.yaml

解析SpringBoot中配置檔案(.yml/.yaml) springBoot配置檔案的載入有先後順序為: 1.application.yml 2.application.yaml 3.application.properoties 後加載的會把先載入的給覆蓋掉 #普通資料的配置

最大連續子序列求和5

1.採用簡單dp與分治策略(與0比較) 每輸入一個數字進行比較與求和,該次求和與上一次求和值進行比較並完成相應的替換, 上一次值與當前輸入元素進行比較。 #include<cstdio> #include<cst

資料庫MongoDB啟動方式3 - 方法總結篇

MongoDB啟動方式(3種方法,依次從低階到高階,環環相扣),羅列如下: 文章目錄 Method 1. 最原始的啟動方式:cmd + cd到安裝路徑 Method 2. 稍微高階一點的啟動方式:修改新增PC全域性變數 Me

SpringBoot屬性配置實戰application.properties

Spring Boot不但繼承了Spring的強大功能,還實現了快速開發的便捷。如何實現快速開發,亮點主要在配置上,如果沒有特殊要求完全不需要任何配置,是不是很爽。 在Spring Boot使用過程中,能直觀的感受到沒了原來整合Spring應用時繁多的XML配

ubuntu開啟終端的方法5

一:直接執行終端的可執行檔案。單擊ubuntu桌面左側啟動器內部的主資料夾,然後單擊檔案系統,進入檔案系統內部usr資料夾下的bin目錄。單擊“搜尋”標識,在搜尋框內輸入“gnome-terminal”然後按回車鍵。在搜尋結果中會出現“gnome-terminal”的可執行檔

建立類設計模式5——原型模式

建立類設計模式(5種)——原型模式 一、圖層 大家如果用過類似於Photoshop的平面設計軟體,一定都知道圖層的概念。圖層概念的提出,使得設計、圖形修改等操作更加便利。設計師既可以修改和繪製當前影象物件,又可以保留其它影象物件,邏輯清晰,且可以及時得到反饋。本節內容,將以圖層為主角,介紹原

建立類設計模式5——建造者模式

建立類設計模式(5種)——建造者模式 一、快餐點餐系統 今天的例子,還是上一次談到的快餐點餐系統。只不過,今天我們從訂單的角度來構造這個系統。 最先還是有請上次的主角們: class Burger(): name="" price=0.0 def getPrice

建立類設計模式5——工廠類相關模式

建立類設計模式(5種)——工廠類相關模式 一、快餐點餐系統 想必大家一定見過類似於麥當勞自助點餐檯一類的點餐系統吧。在一個大的觸控顯示屏上,有三類可以選擇的上餐品:漢堡等主餐、小食、飲料。當我們選擇好自己需要的食物,支付完成後,訂單就生成了。下面,我們用今天的主角--工廠模式--來生成這些食

建立類設計模式5——單例模式

建立類設計模式(5種)——單例模式 目錄 建立類設計模式(5種)——單例模式 一、匯流排 二、單例模式 三、單例模式的優點和應用 四、單例模式的缺點 一、匯流排 匯流排是計算機各種功能部件或者裝置之間傳送資料、控制訊號等資訊的公共通訊解決方案之一。現假設有如下場景

【轉】程序間通訊的方式8

程序間通訊的方式——訊號、管道、訊息佇列、共享記憶體 多程序: 首先,先來講一下fork之後,發生了什麼事情。 由fork建立的新程序被稱為子程序(child process)。該函式被呼叫一次,但返回兩次。兩次返回的區別是子程序的返回值是0,而父程序的返回值則是新程序(子程序)的程序

spring AOP動態代理使用和配置方式手打

理論的東西,隨便看下吧, AOP是OOP的延續,是Aspect Oriented Programming的縮寫,意思是面向切面程式設計。可以通過預編譯方式和執行期動態代理實現在不修改原始碼的情況下給程式動態統一新增功能的一種技術。AOP實際是GoF設計模式的延續,設計模

訪問類中私有屬性的方式

1.首先要理解私有屬性:    私有屬性主要是指  Python中單下劃線和雙下劃線的區別  (比較直白的意思是:) _x: 單前置下劃線,私有化屬性或方法,from somemoudle import *禁止匯入,類物件和子類可以訪問 __xx:雙前置下劃線,避免與子

hive部分:hive表中載入資料的方式

注意:hive不支援insert into table values()的插入資料 hive表中載入資料的四種方式 1.從本地載入資料 hive (hive)> create table wyp > (id int,name strin

springboot5讀取配置方式1:直接讀取bean

1.直接讀取bean:/** * 學生實體類 * Created by ASUS on 2018/5/4 */ public class Student { private String

springboot5讀取配置方式2:通過config讀取指定檔案

2.通過config讀取指定檔案:可以把同一類的bean進行統一管理,然後通過config指定讀取配置檔案/** * 學生實體類 * Created by ASUS on 2018/5/4 */