@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

Другие вопросы по тегам