java - Spring MVC中如何根据Profile动态加载Application.properties文件?
问题描述
您好我正在学习 Spring MVC,我想知道如何动态加载 application.properties 文件。
我正在添加 HibernateConfig.java 文件和 AppConfig.java 文件。我想使用配置文件动态加载应用程序属性文件。例如:开发、测试、产品。我尝试使用动态名称application-{profile}.properties并尝试使用配置文件注释。但无法理解它们实际上是如何工作的。我创建了一个不同的 application.properties 文件。
- 应用程序开发
- 应用测试
- 应用产品
此属性文件包含我的数据库相关数据。但我不知道如何设置配置文件以及如何根据配置文件加载 PropertySource。
我已经在我的 appConfig 文件中设置了活动配置文件。请帮助我了解如何使用基于 Spring MVC Java 的配置来配置配置文件和 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");
}
解决方案
我想你当时不能设置这个参数,已经太晚了。您必须使用指定的配置文件启动应用程序(或在引导文件中设置它)。您可以将其作为参数传递或将其放置在:application.properities 键下:spring.profiles.active
当您将其设置为“开发”时,它将读取主 application.properities,然后是配置文件之一。更多关于如何设置它: https ://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html
推荐阅读
- c++ - 如何在 C++ 中获取字符串的特定部分?
- python - 如何使用 Matplotlib 的动画功能?
- c++ - 使用 C++ 的 if 语句中的 return 关键字出错
- r - 当用户单击树状图块时,悬停值并启用链接
- node.js - body-parser 不能用于 express
- android - 当我输入 flutter doctor --android-licenses 时显示错误
- clang - 如何在 nix 中构建自托管的 clang?
- python - HTML Div 将唯一 id 添加到定义中(python 和破折号)
- reactjs - 如何使用 React Router V5 默认滚动到顶部?
- php - 将 phpmailer V6 与 docker-compose 一起使用