Проблема с аннотацией 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;
}
}