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-默認配置文件