Как настроить автоматическую настройку местоположений PropertySourcesPlaceholderConfigurer для внешней конфигурации в Java Spring Boot - PullRequest
0 голосов
/ 05 мая 2020

Я не понимаю, как установить местоположение для внешней конфигурации,

на основе https://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/html/boot-features-external-config.html Я выполняю некоторую внешнюю настройку, но не могу. Вот мой код

package com.org.tre.myth.config;

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

@Configuration
public class ExternalPropertyConfig {


@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
final PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();

Resource[] resources = new Resource[ ] {
        new ClassPathResource("/myth/app/data/weblogic_configuration/config/conf.properties"), // i want this config used when i deploy it in dev
        new FileSystemResource("src/main/resources/conf.properties") // i want this config used when in local test
};

properties.setLocations( resources );
properties.setIgnoreResourceNotFound(true);
properties.setIgnoreUnresolvablePlaceholders(false);
return properties;
 }
}

он всегда работает на FileSystemResource, когда я развертываю, он не хочет автоматически читать из ClassPathResource, когда на dev. Моя конфигурация на самом деле имеет тот же контент (dev & test), разница только в каталоге, потому что мой разработчик выполняет несколько слоев, и я хочу, чтобы конфигурация запускалась автоматически, даже не создавая профиль для spring.

Мне очень жаль

ОБНОВЛЕНИЕ

Я использую это

Resource[] resources = new Resource[ ] {
            new FileSystemResource("/myth/app/data/weblogic_configuration/config/conf.properties"),
            new FileSystemResource("src/main/resources/conf.properties")
    };

1 Ответ

0 голосов
/ 03 сентября 2020

Используя это

Resource[] resources = new Resource[ ] {
            new FileSystemResource("/myth/app/data/weblogic_configuration/config/conf.properties"),
            new FileSystemResource("src/main/resources/conf.properties")
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...