Spring cloud config 是否有一个符号项引用SpringCloudConfigServer?

Spring cloud config 是否有一个符号项引用SpringCloudConfigServer?,spring-cloud-config,Spring Cloud Config,我正在做的一个项目是利用SpringCloudConfigServer来处理属性更新/刷新 反复出现的一个问题是如何从配置服务器引用/提供纯文本 我知道服务器支持。我想弄清楚的是,如果我有一个引用/foo/default/master/logj42.xml 我将如何以“不可知论”的方式引用这一点,以便如果我提出: {configserver}/foo/default/master/log4j2.xml in the config file 将扩展引用{configserver} 此外,当使用“

我正在做的一个项目是利用SpringCloudConfigServer来处理属性更新/刷新

反复出现的一个问题是如何从配置服务器引用/提供纯文本

我知道服务器支持。我想弄清楚的是,如果我有一个引用/foo/default/master/logj42.xml

我将如何以“不可知论”的方式引用这一点,以便如果我提出:

{configserver}/foo/default/master/log4j2.xml in the config file
将扩展引用{configserver}

此外,当使用“发现”时,如果我像上面那样注入对“资源”的引用,默认机制将尝试使用java.net.URLConnection加载内容。我认为这不会解决“发现”主机的问题


提前感谢。

我找到了一种方法,这种方法侵入性很小,但“揭开了配置服务器实际驻留位置的面纱”

在主应用程序类上,需要添加注释
@EnableDiscoveryClient

我创建了一个方面来添加一个属性源,其中包含一个键,该键指示处理请求的服务器的实际URI:

@Component
@Aspect
public class ResolverAspect {
    @Autowired
    private DiscoveryClient discoveryClient;

    @Pointcut("execution(org.springframework.cloud.config.environment.Environment org.springframework.cloud.config.server.environment.EnvironmentController.*(..))
    private void environmentControllerResolve();

    @Around("environmentControllerResolve()")
    public Object environmentControllerResolveServer(final ProceedingJoinPoint pjp) throws Throwable {
        final Environment pjpReturn = (Environment)pjp.proceed();
        final ServiceInstance localSErviceInstance = discoveryClient.getLocalServiceInstance();
        final PropertySource instancePropertySource =
            new PropertySource("cloud-instance", Collections.singletonMap("configserver.instance.uri", localServiceInstance.getUri().toString()));
        pjpReturn.addFirst(instancePropertySource);
        return pjpReturn;
    }
}
通过这样做,我公开了一个key
configserver.instance.uri
,然后可以从属性值中引用该key,并在客户端对其进行插值/解析


这在公开实际配置服务器方面会产生一些影响,但对于解析不一定使用discovery client的资源,可以利用这一点。

通过创建自定义属性源并在从discovery定位后设置configserver uri,也可以使用without Aspect来解析此问题。
我也有类似的问题,在

中有更多详细信息,这肯定有效,但是在我工作的环境中,我们有大量的应用程序需要使用这种更改。通过将其放在嵌入服务器的应用程序上,所有应用程序都可以透明地利用它