我们正在尝试在引导程序中使用以下设置访问 consul KV 存储,并在代码中使用 @Value("${configvalue}") 读取它。
application:
name: appname
cloud:
consul:
host: consulhost
port: 8500
config :
enabled: true
@Value("${configvalue}")
private String configvalue;
@GetMapping("/home")
private String home() { return configvalue; }
public Message<String> trans4mformat(Message<JsonNode> msg)
{
System.out.println("********Got the consul parameters-->"+configvalue);
//do transform and return Message<String>
}
<int:gateway id="inboundListener" service-interface="KafkaGateway" default-request-channel="inboundChannel" error-channel="errorChannel"/>
<int:transformer id="transform" input-channel="inboundChannel" output-channel="outboundChannel" method="trans4mformat" requires-reply="false" >
<bean id="trns4m" class="com.package.Tranformation"/>
<int:poller fixed-rate="5"/>
</int:transformer>
这在 Rest Controller 中使用时效果很好;但是我们有一个 kafka 监听器和一个从它开始的集成流,我们需要在转换器内部访问这个 @Value("${configvalue}") ?这总是给出 null; 虽然我们可以在单独的方法中通过 get HTTP 调用看到该值。