我在spring,Java,Ant
web应用程序中工作。我正在使用spring分析加载基于环境的属性。下面是样品
@Profile("dev")
@Component
@PropertySource("classpath:dev.properties")
public class DevPropertiesConfig{
}
@Profile("qa")
@Component
@PropertySource("classpath:qa.properties")
public class TestPropertiesConfig {
}
@Profile("live")
@Component
@PropertySource("classpath:live.properties")
public class LivePropertiesConfig{
}
在web.xml中,我们可以给出配置文件
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>
现在,我的查询是针对我需要创建一个单独的Java类的每个环境。
问题:是否可能只有一个类,比如提供配置文件名称作为某个绑定参数,比如@profile({profile})
。
同时,让我知道是否有其他更好的选择,以实现同样的。
一次可以有多个配置文件活动,因此没有单个属性来获取活动配置文件。一般的解决方案是创建ApplicationContextInitializer
,它基于活动配置文件加载其他配置文件。
public class ProfileConfigurationInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public void initialize(final ConfigurableApplicationContext ctx) {
ConfigurableEnvironment env = ctg.getEnvironment();
String[] profiles = env.getActiveProfiles();
if (!ArrayUtils.isEmpty(profiles)) {
MutablePropertySources mps = env.getPropertySources();
for (String profile : profiles) {
Resource resource = new ClassPathResource(profile+".properties");
if (resource.exists() ) {
mps.addLast(profile + "-properties", new ResourcePropertySource(resource);
}
}
}
}
}
像这样的东西应该能起到作用(当我从头顶输入时可能包含错误)。
现在,在web.xml
中包含一个名为ContextInitializerClasss
的上下文参数,并为其指定初始值设定项的名称。
<context-param>
<param-name>contextInitializerClasses</param-name>
<param-value>your.package.ProfileConfigurationInitializer</param-value>
</context-param>
我正在一个spring启动的应用程序,我需要你的协助在下面的场景。 我有每个环境的属性文件,比如application-dev.properties,application-prod.properties等。我的应用程序可以通过使用spring@profile注释来加载特定于环境的属性文件。 请帮帮忙。
我需要为不同的环境加载属性,如DEV、QA和我为每个环境都有不同的属性文件。因此,我通过在服务器中设置environment属性并访问该值以加载相应的属性文件来解决这一问题。在谷歌搜索时,我发现spring环境配置文件提供了类似场景的解决方案。然而,即使在这里,我也必须将服务器中的active-profile变量设置为环境变量。 与本机方法相比,使用spring环境配置文件有什么好处?
本文向大家介绍Spring Boot使用profile如何配置不同环境的配置文件,包括了Spring Boot使用profile如何配置不同环境的配置文件的使用技巧和注意事项,需要的朋友参考一下 在springboot的开发中,有时候我们会有不同的配置,例如日志打印,数据库连接等,开发,测试,生产每个环境可能配置都不一致,还好,springboot支持通过不同的profile来配置不同环境的配置,
问题内容: 我正在做一个简单的管道: 建立- >分期->生产 我需要分期和生产不同的环境变量,所以我试图 源 变量。 但返回 未找到 路径是正确的,因为通过ssh登录时我运行相同的命令,并且工作正常。 这是管道的想法: 我该怎么办? 我正在考虑不使用管道(但是我将无法使用我的Jenkinsfile)。 或使用EnvInject插件为舞台制作和制作不同的工作(但我失去了舞台视图) 或者用env制作(
问题内容: 我已经编写了一个PropertyUtils类(来自互联网),它将加载属性 而PropertiesUtil类如下所示 稍后,我可以通过调用PropertiesUtil.getProperty()方法来获取属性。 但是现在我要稍作修改,以便如果myApp.properties被用户修改/更改,则应再次加载 可能我需要FileWatcher类 但我的怀疑是 如何使用classpath:myA