我已经在Git上创建了一个个人存储库,我保存了我的application.properties文件。
我创建了一个云配置服务器(' my-config-server')并使用了git存储库网址。
我绑定了我的spring-boot应用程序,该应用程序应该使用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存储库加载属性文件。
我相信我应该在我的应用程序中的src / main / resources上有一个application.properties但是因为我正在使用
@PropertySource("application.properties")
@ConfigurationProperties
我告诉我的应用程序使用外部位置的application.properties而不使用内部属性文件。但这不会发生。我的应用程序仍在使用内部属性文件。
答案 0 :(得分:0)
您提供的来源未显示您的应用配置设置以连接到配置服务器。你介意分享吗?
这是从客户端应用程序查询配置服务器的方式:
/{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配置文件运行,此应用程序现在可以能够通过Config服务器读取Git仓库中托管的远程属性。
详细的教程可以在我的博客上找到:http://tech.asimio.net/2016/12/09/Centralized-and-Versioned-Configuration-using-Spring-Cloud-Config-Server-and-Git.html