我使用“ 自定义引导程序配置”以“自定义”的方式解决了我的问题,因为我没有在文档和源代码中找到解决方案。
示例:添加新文件
src/main/resources/meta-INF/spring.factories并在其中添加自定义引导程序配置:
org.springframework.cloud.bootstrap.BootstrapConfiguration=sample.custom.CustomPropertySourceLocator
在CustomPropertySourceLocator中,创建指向配置服务器url的属性(通过发现查找)
@Configurationpublic class CustomPropertySourceLocator implements PropertySourceLocator { private final String configServiceName; private final DiscoveryClient discoveryClient; public CustomPropertySourceLocator( @Value("${spring.cloud.config.discovery.service-id}") String configServiceName, DiscoveryClient discoveryClient){ this.configServiceName = configServiceName; this.discoveryClient = discoveryClient; } @Override public PropertySource<?> locate(Environment environment) { List<ServiceInstance> instances = this.discoveryClient.getInstances(this.configServiceName); ServiceInstance serviceInstance = instances.get(0); return new MapPropertySource("customProperty", Collections.singletonMap("configserver.discovered.uri", serviceInstance.getUri())); }}在上面的代码中,我们创建了将具有一个属性的自定义属性源
configserver.discovered.uri。我们可以在代码中(使用@Value)或其他属性文件(即使它们位于config-
server存储中)使用此属性。
logging.config=${configserver.discovered.uri}/<path to the textfile>/logback-spring.xml``<path to textfile>根据服务纯文本文档以及配置服务器的方式 ,应在何处形成。


