在@Bean方法上使用@ConfigurationProperties注释
问题内容:
有人可以给MWE @ConfigurationProperties
直接在@Bean
方法上使用注释的方法吗?
我已经看到了无数的关于在类定义中使用它的示例-但还没有@Bean
方法的示例。
引用文档:
- 这种添加到一个类定义或 一个
@Bean
方法 - @Target(value = {TYPE, METHOD })
因此,我认为还有一种可能性和预期的用途-但不幸的是,我无法弄清楚。
问题答案:
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();
}
这里的DataSource类具有属性url,用户名,密码,driverClassName,因此spring boot将它们映射到创建的对象。
DataSource类的示例:
public class DataSource {
private String url;
private String driverClassName;
private String username;
private String password;
//getters & setters, etc.
}
换句话说,这与使用构造型注释(@ Component,@ Service等)初始化某些bean的效果相同,例如
@Component
@ConfigurationProperties(prefix="spring.datasource")
public class DataSource {
private String url;
private String driverClassName;
private String username;
private String password;
//getters & setters, etc.
}