摘要:業(yè)務(wù)需求加載外部配置文件,部署時更改比較方便。先上代碼使用變量的工具類也可以通過使用這中加載方法優(yōu)先級很高,如果與配置文件同名,將覆蓋文件中的配置。更新工具類可能晚于某些初始化的類加載。
業(yè)務(wù)需求:加載外部配置文件,部署時更改比較方便。
先上代碼:
@SpringBootApplication public class Application { public static void main(String[] args) throws Exception { SpringApplicationBuilder springApplicationBuilder = new SpringApplicationBuilder(Application.class); springApplicationBuilder.web(true); Properties properties = getProperties(); StandardEnvironment environment = new StandardEnvironment(); environment.getPropertySources().addLast(new PropertiesPropertySource("micro-service", properties)); springApplicationBuilder.environment(environment); springApplicationBuilder.run(args); } private static Properties getProperties() throws IOException { PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); propertiesFactoryBean.setIgnoreResourceNotFound(true); Resource fileSystemResource = resolver.getResource("file:/opt/company/test.properties"); propertiesFactoryBean.setLocations(fileSystemResource); propertiesFactoryBean.afterPropertiesSet(); return propertiesFactoryBean.getObject(); } }
使用變量的工具類
@Component public class EnvironmentUtil { private static Environment environment; @Autowired public void setEnvironment(Environment environment) { EnvironmentUtil.environment = environment; } public staticT getProperty(String key, Class targetType, T defaultValue) { return environment.getProperty(key, targetType, defaultValue); } public static T getProperty(String key, Class targetType) { return environment.getProperty(key, targetType); } public static String getProperty(String key) { return environment.getProperty(key); } public static String getProperty(String key, String defaultValue) { return environment.getProperty(key, defaultValue); } public static Integer getInteger(String key, Integer defaultValue) { return environment.getProperty(key, Integer.class, defaultValue); } }
也可以通過@Value("${key}")使用
這中加載方法優(yōu)先級很高,如果與spring boot配置文件同名,將覆蓋application.properties文件中的配置。
更新:
工具類可能晚于某些初始化的類加載。請?zhí)砑?b>@DependsOn("environmentUtil")
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/70933.html
摘要:學(xué)習(xí)筆記使用很容易創(chuàng)建一個獨(dú)立運(yùn)行運(yùn)行內(nèi)嵌容器準(zhǔn)生產(chǎn)級別的基于框架的項目,使用你可以不用或者只需要很少的配置。異常消息如果這個錯誤是由異常引起的。錯誤發(fā)生時請求的路徑。 Spring-Boot 1.5 學(xué)習(xí)筆記 使用Spring Boot很容易創(chuàng)建一個獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌Servlet容器)、準(zhǔn)生產(chǎn)級別的基于Spring框架的項目,使用Spring Boot你可以不用或者只需要很...
摘要:需要注意的是必須要使用版本為以上才支持屬性。與格式文件不同,正對不同的,無法在一個文件設(shè)置,官方采用命名形式為格式來達(dá)成一樣的效果。采用方式添加的是屬于額外激活的,也就是說覆蓋掉外部傳入的指定的。 showImg(https://segmentfault.com/img/remote/1460000019924197?w=1050&h=500); Spring Boot Profile...
摘要:的默認(rèn)配置文件位置為。比如,我們需要自定義模塊的服務(wù)端口號,可以在中添加來指定服務(wù)端口為,也可以通過來指定應(yīng)用名該名字在應(yīng)用中會被注冊為服務(wù)名。同時,配置內(nèi)容都對開發(fā)人員可見,本身這也是一種安全隱患。 在快速入門一節(jié)中,我們輕松的實(shí)現(xiàn)了一個簡單的RESTful API應(yīng)用,體驗(yàn)了一下Spring Boot給我們帶來的諸多優(yōu)點(diǎn),我們用非常少的代碼量就成功的實(shí)現(xiàn)了一個Web應(yīng)用,這是傳統(tǒng)的...
摘要:如刪除臨時文件,清除緩存信息,讀取配置文件信息,數(shù)據(jù)庫連接等。提供的接口也可以滿足該業(yè)務(wù)場景。不同點(diǎn)中方法的參數(shù)為,而接口中方法的參數(shù)為數(shù)組。 spring-boot-starter-parent Maven的用戶可以通過繼承spring-boot-starter-parent項目來獲得一些合理的默認(rèn)配置。這個parent提供了以下特性: 默認(rèn)使用Java 8 使用UTF-8編碼 一...
摘要:你如何理解中的可以理解為啟動器,它包含了一系列可以集成到應(yīng)用里面的依賴包,你可以一站式集成及其他技術(shù),而不需要到處找示例代碼和依賴包。如你想使用訪問數(shù)據(jù)庫,只要加入啟動器依賴就能使用了。 面試了一些人,簡歷上都說自己熟悉 Spring Boot, 或者說正在學(xué)習(xí) Spring Boot,一問他們時,都只停留在簡單的使用階段,很多東西都不清楚,也讓我對面試者大失所望。 下面,我給大家總結(jié)...
閱讀 1388·2021-09-27 13:56
閱讀 2419·2019-08-26 10:35
閱讀 3574·2019-08-23 15:53
閱讀 1928·2019-08-23 14:42
閱讀 1292·2019-08-23 14:33
閱讀 3639·2019-08-23 12:36
閱讀 2043·2019-08-22 18:46
閱讀 1069·2019-08-22 14:06