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