tmj :
Could someone give a MWE of how to use the @ConfigurationProperties
annotation directly on a @Bean
method?
I have seen countless examples of it being used on class definitions - but no examples yet for @Bean
methods.
To quote the documentation:
- Add this to a class definition or a
@Bean
method - @Target(value={TYPE,METHOD})
So, I think there is a possibility and an intended use as well - but unluckily I am unable to figure it out.
Evgeni Dimitrov :
spring.datasource.url = [url]
spring.datasource.username = [username]
spring.datasource.password = [password]
spring.datasource.driverClassName = oracle.jdbc.OracleDriver
@Bean
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource() {
return new DataSource();
}
Here the DataSource class has proeprties url, username, password, driverClassName, so spring boot maps them to the created object.
Example of the DataSource class:
public class DataSource {
private String url;
private String driverClassName;
private String username;
private String password;
//getters & setters, etc.
}
In other words this has the same effect as if you initialize some bean with stereotype annotations(@Component, @Service, etc.) e.g.
@Component
@ConfigurationProperties(prefix="spring.datasource")
public class DataSource {
private String url;
private String driverClassName;
private String username;
private String password;
//getters & setters, etc.
}
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=422341&siteId=1