當前位置:
首頁 > 知識 > spring boot 項目筆記2一自定義配置文件的讀取

spring boot 項目筆記2一自定義配置文件的讀取

在spring boot種自定義配置文件的讀取很方便,不用在寫propert的讀取類來讀取配置文件信息。

下面是我試過的讀取springboot讀取配置文件的幾種方法:

準備:

1.在application.yml文件種加入配置信息:

hank:
testConfig: TestDriver

2.新建立配置文件 dbConfig.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root
org.hank.testconfig = testConfig

前面的準備 中我們知道

hank.testConfig 是在application.yml文件中,此文件為springboot
的默認配置文件
jdbc.driver 是在我們自定義的配置文件中的key

方法一:用springboot 自帶的類Environment

測試:

@Autowired
private Environment env;

@Test
public void testConfigDefault {
logger.info("Environment get default properties:" + env.getProperty("hank.testConfig"));
logger.info("Environment get self properties:" + env.getProperty("jdbc.driver"));
}

測試結果

Environment get default properties:TestDriver

Environment get self properties:null

結論:也就是說Environment自帶的只能讀取默認的配置文件裡面的配置信息,自定義的配置文件在Environment是讀取不了的。況且在application.yml配置的都是系統自身的項,也就是不隨系統環境改變而改變的配置項。一些易變的配置項我們還是自定義文件的比較好。我一般不會這麼配置。

方法二:Configurable

建立類ConfigDefault 註解@Configurable

@Component
@Configurable
public class ConfigDefault {

@Value("${hank.testConfig}")
private String hankConfig;

@Value("${org.hank.testconfig}")
private String selfConfig;

getter and setter....
}

測試:

@Autowired
private ConfigDefault configDefault;
@Test
public void testConfigDefault {
logger.info("defualt config--hank.testConfig:" + configDefault.getHankConfig);
logger.info("self config--org.hank.testconfig:" + configDefault.getSelfConfig);
}

測試結果:直接報錯,Could not resolve placeholder "org.hank.testconfig" in value "${org.hank.testconfig}"

也就說application.yml文件中沒有org.hank.testconfig這配置項,所以在類上加@Configurable也是默認只讀取application.yml文件的配置項

方法三:@PropertySource註解

新建model類:

@Component
@PropertySource("classpath:dbConfig.properties")
public class DataBaseConfig {
@Value("${jdbc.driver}")
private String driver;

@Value("${jdbc.url}")
private String url;

@Value("${jdbc.username}")
private String userName;

@Value("${jdbc.password}")
private String password;

@Value("${hank.testConfig}") //測試默認配置文件
private String hankConfig;

getter and setter...
}

測試:

@Autowired
private DataBaseConfig config;
@Test
public void testGetDataBaseConfig {
logger.info("self Config Driver:" + config.getDriver);
logger.info("default config hank.testConfig:" + config.getHankConfig);
}

測試結果:

self Config Driver:com.mysql.jdbc.Driver

default config hank.testConfig:TestDriver

可以看出連同默認配置的信息也讀取到了

結論:用@PropertySource("classpath:dbConfig.properties")

指定自定義配置文件路徑就可以讀取到自定義的配置文件信息,而對於默認配置文件application.yml我們也能在讀取自定義配置文件的同時讀取到默認配置文件的信息。

以上就是三中讀取配置文件的方式,可以看到要想讀取自定義的配置文件,就必須要註解指定配置文件路徑。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

TAG:達人科技 |

您可能感興趣

python筆記14-讀取yaml配置文件
Spring Boot學習筆記系列之Spring Boot配置文件屬性值校驗
Spring Boot 配置文件 yml與properties
Eclipse編輯Spring配置文件xml時自動提示類class包名
redis.conf配置文件詳解
Hibernate配置文件詳解-1
Mybatis配置文件
乾貨:詳解 Tomcat 配置文件 server.xml
快速自定義Cordova插件(-配置文件)
配置文件|logstash配置文件詳解
Creo/Preo軟體自學第二篇:部分配置文件在config中路徑的設置
剖析關於-ansible配置文件和命令中ad-hoc模式使用參數詳解
SpringMVC工程的web.xml以及其他配置文件
MyBatis配置文件詳解
長話短說 pconf 配置文件
有黑客試圖將Windows 10 設置應用的配置文件武器化
Linux 中網路相關的那些配置文件
化繁為簡自行搭建你的Fabric網路:不可或缺的配置文件
Jenkins配置文件路徑改動導致管理員許可權開放漏洞
MySQL-默認配置文件