Проблема с аннотацией COnfiguration Properties

У меня есть конфигурация Git и сервер Spring указывает на эту конфигурацию. Затем я создал клиента со следующей конфигурацией и ожидаемыми свойствами, которые будут заполнены в объекте Properties. По какой-то причине он не работает с облачной конфигурацией Spring. Но он работает с application.yml или application.properties. Я могу видеть, что бар заполнен правильно... но не свойства.

любая идея?

@SpringBootApplication
@EnableAutoConfiguration
@RestController
@RefreshScope
@ComponentScan
@EnableConfigurationProperties
@ConfigurationProperties(prefix="datasource.mysql.jpa")

public class ConfigClientApplication {

    private Properties properties;

    public Properties getProperties() {
        return properties;
    }

    @Value("${datasource.mysql.jpa.hibernate.dialect:sss}")
    private String bar;
    @RequestMapping("/")
    public String home() {
        String a ="";
        try {
            a = (String)properties.get("datasource.mysql.jpa.hibernate.dialect");
        }catch (Exception e){
            a = e.getMessage();
        }
        return "Hello "+bar + a;
    }

1 ответ

Не совмещать @Value аннотация с @ConfigurationProperties сюда. Мне посчастливилось отобразить группы свойств на внутренние классы следующим образом:

test1.property1=...
test1.test2.property2=...
test1.test2.property3=...

Будет сопоставлено с:

import javax.validation.constraints.NotNull;

import lombok.Getter;
import lombok.Setter;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Getter
@Setter
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(locations = "classpath:myapp.properties")
public class ApplicationProperties {

    private String property1;
    private Test2 test2;

    @Getter
    @Setter
    @ConfigurationProperties(prefix = "test2")
    public static class Test2 {
        @NotNull
        private String property2;
        @NotNull
        private String property3;
    }
}
Другие вопросы по тегам