Как установить автоматическое расположение в PropertySourcesPlaceholderConfigurer при весенней загрузке? - PullRequest
0 голосов
/ 04 мая 2020

Итак, я разработал какое-то приложение при весенней загрузке, я так запутался, как автоматически использовать PropertySourcesPlaceholderConfigurer setlocation, вот мой код

package com.org.tre.myth.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.FileSystemResource;

@Configuration
public class ExternalPropertyConfig {

@Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
    properties.setLocation(new FileSystemResource("/myth/app/data/weblogic_configuration/config/conf.properties")); //devpconfprop
    properties.setLocation(new FileSystemResource("src/main/resources/conf.properties")); //localconfprop
    properties.setIgnoreResourceNotFound(false);
    return properties;
}

}

Когда я нахожусь на local Мне нужно деактивировать местоположение разработчика с помощью комментария

 @Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
   //properties.setLocation(new FileSystemResource("/myth/app/data/weblogic_configuration/config/conf.properties")); //devpconfprop
    properties.setLocation(new FileSystemResource("src/main/resources/conf.properties")); //localconfprop
    properties.setIgnoreResourceNotFound(false);
    return properties;
}

И прежде чем развернуть свое приложение в dev, мне нужно сделать противоположную вещь, комментируя мое локальное местоположение и активировать местоположение разработчика

 @Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
    properties.setLocation(new FileSystemResource("/myth/app/data/weblogic_configuration/config/conf.properties")); //devpconfprop
    //properties.setLocation(new FileSystemResource("src/main/resources/conf.properties")); //localconfprop
    properties.setIgnoreResourceNotFound(false);
    return properties;
}

есть ли способ, которым он может автоматически устанавливать местоположение, обнаруживая окружающую среду или что-то в этом роде? Пожалуйста, помогите мне, не стесняйтесь комментировать Спасибо, ребята.

1 Ответ

0 голосов
/ 04 мая 2020

Используйте функцию профилей Spring Boot.

Вы можете выполнить следующие шаги:

  1. Создать спецификацию среды c профили:
    • application.properties
    • application-dev.properties

Spring Boot автоматически загрузит все свойства application.properties и свойства профиля, заданные вами c и заданные как активные.

Сохраните содержимое вашего файла свойств разработчика (/myth/app/data/weblogic_configuration/config/conf.properties) внутри application-dev.properties и содержимое вашего локального файла свойств (src/main/resources/conf.properties) внутри application.properties.

Перед развертыванием в среде Dev обязательно установите профиль dev в качестве активного профиля пружины, добавив его в VM Options: -Dspring.profiles.active=dev

Это загрузит свойства внутри вашего application-dev.properties и переопределит свойства внутри вашего application.properties.

b. При локальном запуске приложения удалите или не указывайте активный профиль.

См. Ссылку ниже для справки: https://docs.spring.io/spring-boot/docs/1.1.x/reference/html/boot-features-profiles.html

...