Я использую Java + Spring Boot, возникла необходимость добавить в файл application.properties поле - экземпляр какого-то своего типа (не String, не Integer, не...)
Например как-то так:
@Configuration
@ConfigurationProperties
public class MySuperCustomProperties {
private SomeClass someProperty;
// get set...
}
(Где SomeClass это какой-то собственный тип данных.)
Можно ли так сделать и если да, то как? (Нет ли такого интерфейса (например) реализовав который Spring сможет сам кастить строку в SomeClass)
Вы можете для этого случая использовать @Bean.
application.properties:
springboot.field=field
MySuperCustomProperties.class:
@Configuration
public class MySuperCustomProperties {
@Bean
public SomeClass someProperty( @Value("${springboot.field}") String field ) {
SomeClass someClass = new SomeClass();
someClass.setField(field);
return someClass;
}
}
SomeClass.class:
public class SomeClass {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
}
Application.class:
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
private SomeClass someClass;
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Override
public void run(String... args) throws Exception {
System.out.println(someClass.getField());
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости