Как загрузить файл Application.properties динамически на основе профиля в Spring MVC? - PullRequest
0 голосов
/ 14 ноября 2018

Здравствуйте, я изучаю Spring MVC и хочу узнать, как динамически загружать файл application.properties.

Я добавляю файл HibernateConfig.java и файл AppConfig.java. Я хочу загружать файл свойств приложения динамически, используя профили. Например: dev, test, prod. Я пытался использовать динамическое имя application- {profile} .properties , а также пробовал аннотацию профиля. но не в состоянии понять, как они на самом деле работают. Я создал другой файл application.properties.

  1. приложение-DEV
  2. приложение-тест
  3. Приложение-прод

Этот файл свойств содержит данные, связанные с моей БД. но я не знаю, как установить профиль и как загрузить PropertySource на основе профиля.
Я установил активный профиль в моем файле appConfig. Пожалуйста, помогите мне понять, как настроить профиль и свойства application.properties с помощью Spring MVC на основе конфигурации Java. Я искал и нашел много решений для конфигурации на основе 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 Ответ

0 голосов
/ 15 ноября 2018

Я думаю, вы не можете установить этот параметр в то время, это уже слишком поздно.Вы должны запустить приложение с указанным профилем (или установить его в файле начальной загрузки).Вы можете передать его в качестве аргумента или поместить в: application.properities. Под ключом: spring.profiles.active

Когда вы установите его в значение 'dev', он будет читать основные application.properities, а затем профиль.Подробнее о том, как его установить: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...