dasun_001
dasun_001

Reputation: 169

How to consume spring cloud config server Jdbc backend configs from Spring cloud Client server?

I went through lots of tutorials regarding this but could not get this done.

Here is my table structure for this.

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

I have a cloud config server which should integrate with JDBC backend. Here is my application.properties in config server

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

With this configs if I enter http://localhost:8082/masking/dev/latest response will show the results as I want.

I want to consume properties in client side with the following configs in bootstrap.properties

spring.application.name=masking
spring.cloud.config.uri=http://localhost:8082
spring.cloud.config.label=latest
spring.cloud.config.profile=dev

And in my client side

@RestController
@RefreshScope
public class TestController {

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

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

This gives java.lang.IllegalArgumentException: Could not resolve placeholder 'test-property' in value "${test-property}"

Can anyone comment on this?

Thanks.

Upvotes: 0

Views: 1185

Answers (1)

dasun_001
dasun_001

Reputation: 169

This issue comes with the latest Spring boot release, All the above code segments steps all okay, But by default Spring has disabled bootstrap. So you have to enable them by adding

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

No need add for older versions of the Spring boot projects.

Upvotes: 2

Related Questions