24. Profiles
Spring Profiles提供了一種隔離應(yīng)用程序配置的方式,并讓這些配置只能在特定的環(huán)境下生效。任何@Component或@Configuration都能被@Profile標(biāo)記,從而限制加載它的時(shí)機(jī)。
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
以正常的Spring方式,你可以使用一個(gè)spring.profiles.active的Environment屬性來(lái)指定哪個(gè)配置生效。你可以使用平常的任何方式來(lái)指定該屬性,例如,可以將它包含到你的application.properties中:
spring.profiles.active=dev,hsqldb
或使用命令行開(kāi)關(guān):
--spring.profiles.active=dev,hsqldb
24.1. 添加激活的配置(profiles)
spring.profiles.active屬性和其他屬性一樣都遵循相同的排列規(guī)則,最高的PropertySource獲勝。也就是說(shuō),你可以在application.properties中指定生效的配置,然后使用命令行開(kāi)關(guān)替換它們。
有時(shí),將特定的配置屬性添加到生效的配置中而不是替換它們是有用的。spring.profiles.include屬性可以用來(lái)無(wú)條件的添加生效的配置。SpringApplication的入口點(diǎn)也提供了一個(gè)用于設(shè)置額外配置的Java API(比如,在那些通過(guò)spring.profiles.active屬性生效的配置之上):參考setAdditionalProfiles()方法。
示例:當(dāng)一個(gè)應(yīng)用使用下面的屬性,并用--spring.profiles.active=prod
開(kāi)關(guān)運(yùn)行,那proddb和prodmq配置也會(huì)生效:
---
my.property: fromyamlfile
---
spring.profiles: prod
spring.profiles.include: proddb,prodmq
注:spring.profiles屬性可以定義到一個(gè)YAML文檔中,用于決定什么時(shí)候該文檔被包含進(jìn)配置中。具體參考[Section 63.6, “Change configuration depending on the environment”](…/IX. ‘How-to’ guides/63.6. Change configuration depending on the environment.md)
24.2.以編程方式設(shè)置profiles
在應(yīng)用運(yùn)行前,你可以通過(guò)調(diào)用SpringApplication.setAdditionalProfiles(…)方法,以編程的方式設(shè)置生效的配置。使用Spring的ConfigurableEnvironment接口激動(dòng)配置也是可行的。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-448953.html
24.3. Profile特定配置文件
application.properties(或application.yml)和通過(guò)@ConfigurationProperties引用的文件這兩種配置特定變種都被當(dāng)作文件來(lái)加載的,具體參考[Section 23.3, “Profile specific properties”](23.4. Profile-specific properties.md)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-448953.html
到了這里,關(guān)于Spring Profiles提供了一種隔離應(yīng)用程序配置的方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!