java - 在 `@ConfigurationProperties` 方法上使用 `@Bean` 注释

标签 java spring spring-boot

有人能给出如何在 @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/

相关文章:

java - 转码器和转录 SDK。我还需要 SQS 吗?

java 带有迭代器的泛型数组

java - 如何让 Firebase 数据可供公众阅读?

python - SpringBoot org.springframework.beans.factory.UnsatisfiedDependencyException 异常

java - 基于 Spring-ws @Endpoint/@PayloadRoot 的配置给出 404

java - 如何在 hibernate 中将表列与另一个表列映射

spring-boot - JBAS015852 : Could not index class module-info. 类 - Spring Boot + Jboss 7.1.1

java - 如何在 Spring Boot 中从 application.properties 分配注释值?

java - Spring Boot docker无法连接到mysql(连接被拒绝/createCommunicationsException)

java - 参与者数量有限的 Firebase 房间