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

Java 如何在Spring MVC中基于概要文件动态加载Application.properties文件?,java,spring,spring-mvc,Java,Spring,Spring Mvc,大家好,我正在学习SpringMVC,我想知道如何动态加载application.properties文件 我正在添加HibernateConfig.java文件和AppConfig.java文件。我想使用配置文件动态加载应用程序属性文件。例如:dev、test、prod.I尝试使用动态名称应用程序-{profile}.properties,还尝试了配置文件注释。但无法理解它们是如何实际工作的。我创建了不同的application.properties文件 应用程序开发 应用测试 应用产品 此属

大家好,我正在学习SpringMVC,我想知道如何动态加载application.properties文件

我正在添加HibernateConfig.java文件和AppConfig.java文件。我想使用配置文件动态加载应用程序属性文件。例如:dev、test、prod.I尝试使用动态名称应用程序-{profile}.properties,还尝试了配置文件注释。但无法理解它们是如何实际工作的。我创建了不同的application.properties文件

  • 应用程序开发
  • 应用测试
  • 应用产品
  • 此属性文件包含与数据库相关的数据。但我不知道如何设置配置文件以及如何基于配置文件加载PropertySource。
    我已在appConfig文件中设置了活动配置文件。请帮助我理解如何使用基于SpringMVCJava的配置来配置profile和application.properties。我已经搜索并找到了许多基于XML配置的解决方案,但对于基于java的配置,我还没有找到任何合适的答案

    HibernateConfig.java

    AppConfig.java


    我想你当时不能设置这个参数,已经太晚了。您必须使用指定的配置文件启动应用程序(或在引导文件中进行设置)。您可以将其作为参数传递,也可以将其放入: 应用性能 在键下:spring.profiles.active

    当您将其设置为“dev”时,它将读取主application.properties,然后读取概要文件。有关如何设置的详细信息:

    我已尝试将spring.profiles.active放入application.properties中。但它给了我一个错误,我不确定它是否能在SpringMVC中工作。spring.profiles.active仅适用于弹簧引导。
    @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(){
    }
    }
    
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException 
    {
        super.onStartup(servletContext);
        servletContext.setInitParameter("spring.profiles.active", "dev");
    }