如何从spring云客户机服务器使用spring云配置服务器jdbc后端配置?

w41d8nur  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(370)

我经历了很多关于这个的教程,但没能做到这一点。
这是我的表格结构。

Application Profile Label  prop_key       value
masking     dev     latest test-property  message

我有一个云配置服务器,它应该与jdbc后端集成。这是我的 application.properties 在配置服务器中

server.port=8082
spring.application.name=masking
management.endpoints.web.exposure.include=*
spring.datasource.url=jdbc:postgresql://localhost:8000/finos?currentSchema=xlabs
spring.datasource.username=mufgdev
spring.datasource.password=XXX
spring.profiles.active=XXX
spring.cloud.config.server.jdbc.sql=SELECT prop_key,value from xlabs.properties where application=? and profile=? and label=?
spring.cloud.config.server.jdbc.order=1

如果我进去的话 http://localhost:8082/masking/dev/latest 回复将显示我想要的结果。
我想使用客户端中的属性和中的以下配置 bootstrap.properties ```
spring.application.name=masking
spring.cloud.config.uri=http://localhost:8082
spring.cloud.config.label=latest
spring.cloud.config.profile=dev

在我的客户方面

@RestController
@RefreshScope
public class TestController {

@Value("${test-property}")
private String aConf;

@GetMapping("/message")
String message() {
    String name =aConf ;
    return name;
}

}

这给 `java.lang.IllegalArgumentException: Could not resolve placeholder 'test-property' in value "${test-property}"` 有人能对此发表评论吗?
谢谢。
jaql4c8m

jaql4c8m1#

这个问题与最新的spring引导版本一起出现,上面所有的代码段步骤都正常,但是默认情况下spring已经禁用了引导。所以你必须通过添加

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

旧版本的springboot项目不需要添加。

相关问题