有人能给出如何在 @Bean
方法上直接使用 @ConfigurationProperties
注释的 MWE 吗?
我已经看到了无数在类定义中使用它的例子——但还没有关于 @Bean
方法的例子。
引用 documentation :
- 将此添加到类定义或
@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类有properties url、username、password、driverClassName,所以spring boot把它们映射到创建的对象上。
DataSource 类示例:
public class DataSource {
private String url;
private String driverClassName;
private String username;
private String password;
//getters & setters, etc.
}
换句话说,这与使用原型(prototype)注释(@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.
}
关于java - 在 `@ConfigurationProperties` 方法上使用 `@Bean` 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232021/