@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 из внешнего местоположения и не использовать внутренний файл свойств. Но этого не происходит. Мое приложение все еще использует внутренний файл свойств.
1 ответ
Источник, который вы включили, не показывает параметры конфигурации вашего приложения для подключения к серверу Config. Вы не против поделиться этим?
Вот как сервер конфигурации может быть запрошен из клиентского приложения:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
Допустим, сервер Config указывает на репозиторий Git, который включает этот файл: demo-config-client-development.properties
Вы должны быть в состоянии запросить сервер конфигурации как:
curl http://localhost:8101/demo-config-client-development.properties
Предполагая, что Config Server работает локально и прослушивает 8181.
Предположим также, что у вас есть клиентское приложение с именем: demo-config-client, которое подключается к серверу Config и работает с использованием профиля разработки Spring. Теперь это приложение сможет читать удаленные свойства, размещенные в репозитории Git, через сервер Config.
Подробное руководство можно найти в моем блоге по адресу: http://tech.asimio.net/2016/12/09/Centralized-and-Versioned-Configuration-using-Spring-Cloud-Config-Server-and-Git.html