@ConfigurationProperties не извлекает файл внешних свойств

Я создал личный репозиторий на Git, где сохранил свой файл application.properties.

Я создал сервер облачной конфигурации (my-config-server) и использовал URL-адрес репозитория git.

Я связал свое приложение с весенней загрузкой, которое должно получать доступ к файлу внешних свойств с репозиторием Git.

@javax.jws.WebService(
                  serviceName = "myService",
                  portName = "my_service",
                  targetNamespace = "urn://vdc.com/xmlmessaging/SD",
                  wsdlLocation = "classpath:myService.wsdl",
                  endpointInterface = "com.my.service.SDType")

@PropertySource("application.properties") 
@ConfigurationProperties
public class SDTypeImpl implements SDType {

/*It has various services implementation that use following method**/

private SDObj getObj (BigDecimal value) {
    AnnotationConfigApplicationContext context =
                  new AnnotationConfigApplicationContext(
                          SDTypeImpl.class);
    SDObj obj = context.getBean(SDPropertiesUtil.class).getObj(value);
    context.close();
    return obj;
}

}

Другой класс:

public class SDPropertiesUtil {

@Autowired
public Environment env;

public SDObj getObj(BigDecimal value) {

String valueStr = env.getProperty(value.toString());
/*do logic*/ 
}

Мое приложение запускается, но не может загрузить файл свойств из моего репозитория git.

Я считаю, что в моем приложении должен быть application.properties в src / main / resources, но поскольку я использую

@PropertySource("application.properties") 
@ConfigurationProperties

Я говорю своему приложению использовать application.properties из внешнего расположения и не использовать файл внутренних свойств. Но этого не происходит. Мое приложение все еще использует файл внутренних свойств.


person Tiya    schedule 09.05.2017    source источник
comment
@PraneethRamesh, ты знаешь, что происходит?   -  person Tiya    schedule 09.05.2017


Ответы (1)


В указанном вами источнике не отображаются параметры конфигурации вашего приложения для подключения к серверу Config. Не могли бы вы поделиться этим?

Вот как можно запросить сервер конфигурации из клиентского приложения:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

Допустим, сервер конфигурации указывает на репозиторий Git, который включает этот файл: demo-config-client-development.properties

Вы должны иметь возможность запрашивать сервер конфигурации как:

curl http://localhost:8101/demo-config-client-development.properties

Предполагая, что Config Server запущен локально и прослушивает 8181.

Предположим также, что у вас есть клиентское приложение с именем: demo-config-client, которое подключается к серверу Config и запускается с использованием профиля development Spring. Теперь это приложение сможет читать удаленные свойства, размещенные в репозитории Git, через сервер конфигурации.

Подробное руководство можно найти в моем блоге по адресу: http://tech.asimio.net/2016/12/09/Centralized-and-Versioned-Configuration-using-Spring-Cloud-Config-Server-and-Git.html

person ootero    schedule 10.05.2017
comment
Я создал сервер конфигурации с помощью команды cf create-service .... Я предоставил серверу URL-адрес своего репозитория git, а в моем приложении с весенней загрузкой я добавил имя сервера конфигурации (services: - config-server) для привязки приложение с сервером после нажатия приложения. - person Tiya; 10.05.2017
comment
Затем попробуйте использовать профиль Spring, например -Pspring.profiles.active = dev, и переименуйте файл свойств в Git на ‹имя приложения› -dev.properties. @PropertySource (application.properties) не требуется - person ootero; 10.05.2017
comment
Я удалил @PropertySource (application.properties), но как мое приложение весенней загрузки поймет, к какому файлу свойств из Git обращаться и где именно этот файл находится в Git? - person Tiya; 10.05.2017
comment
Не могли бы вы вставить настройки конфигурации службы, которые должны подключаться к серверу конфигурации? Кроме того, как я уже упоминал в ответе выше, если ваша служба называется blah, создайте файл свойств в Git с именем blah-dev.properties, затем запустите службу blah, используя профиль разработчика, что-то вроде java -Dspring.profiles.active = dev -jar цель / blah.jar - person ootero; 10.05.2017