gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:28:33 27 4
gpt4 key购买 nike

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

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

  1. 应用开发
  2. 应用测试
  3. 应用产品

此属性文件包含我的数据库相关数据。但我不知道如何设置配置文件以及如何根据配置文件加载 PropertySource。
我已经在我的 appConfig 文件中设置了 Activity 配置文件。请帮助我了解如何使用基于 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");
}

最佳答案

我想你那个时候不能设置这个参数,已经来不及了。您必须使用指定的配置文件启动应用程序(或在 Bootstrap 文件中设置它)。您可以将其作为参数传递或将其放在:应用程序.properties键下:spring.profiles.active

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

关于java - 如何在 Spring MVC 中基于 Profile 动态加载 Application.properties 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com