繁体   English   中英

如何在Spring MVC中基于Profile动态加载Application.properties文件?

How to load Application.properties file dynamically based on Profile in Spring MVC?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

嗨,我正在学习Spring MVC,我想知道如何动态加载application.properties文件。

我正在添加HibernateConfig.java文件和AppConfig.java文件。 我想使用配置文件动态加载应用程序属性文件。 例如:开发,测试,生产。 我尝试使用动态名称application- {profile} .properties ,还尝试使用配置文件注释。 但无法了解它们的实际工作方式。 我创建了一个不同的application.properties文件。

  1. 应用程序开发
  2. 应用测试
  3. 应用PROD

该属性文件包含与数据库有关的数据。 但我不知道如何设置配置文件以及如何基于配置文件加载PropertySource。
我已经在我的appConfig文件中设置了活动配置文件。 请帮助我了解如何使用基于Spring MVC Java的配置来配置profile和application.properties。 我搜索并找到了许多基于XML的配置解决方案,但没有找到基于Java的配置的正确答案。

HibernateConfig.java

@Configuration
@EnableTransactionManagement
@ComponentScan({"com.project.configuration"})
@PropertySource(value = {"classpath:application.properties"})
public class HibernateConfiguration {

@Autowired
private Environment env;

@Bean
public LocalSessionFactoryBean sessionFactory(){
return sessionFactory;      
}

@Bean
public DataSource dataSource(){
/* loading DB */
return dataSource;  
}

@Bean
public Properties hibernateProperties(){
}
}

AppConfig.java

@Override
public void onStartup(ServletContext servletContext) throws ServletException 
{
    super.onStartup(servletContext);
    servletContext.setInitParameter("spring.profiles.active", "dev");
}
1 个回复

我认为您当时无法设置此参数,为时已晚。 您必须使用指定的配置文件启动应用程序(或在引导文件中进行设置)。 您可以将其作为参数传递或放置在以下位置:application.properities在键下:spring.profiles.active

当您将其设置为“ dev”时,它将读取主application.properities,然后读取配置文件1。 有关如何设置的更多信息: https : //docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

10 Spring - 根据 application.properties 中的值加载自定义属性文件

我有 application.properties 文件: 然后我想根据该值加载一个属性文件 - a.properties并从该文件中读取/使用属性。 我在想这样的事情: 但由于某种原因,该值始终为空。 当我尝试在服务/组件中获得该值时,它工作正常。 我想避免使用弹簧轮廓。 任何想法如何使 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM