小编典典

在@Bean方法上使用@ConfigurationProperties批注

spring-boot

有人可以给MWE @ConfigurationProperties直接在@Bean方法上使用注释的方法吗?

我已经看到了无数的关于在类定义上使用它的示例-但还没有@Bean方法的示例。

引用文档

  • 这种添加到一个类定义或 一个@Bean方法
  • @Target(value = {TYPE, METHOD })

因此,我认为还有一种可能性和预期的用途-但不幸的是,我无法弄清楚。


阅读 2793

收藏
2020-05-30

共1个答案

小编典典

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.
        }
2020-05-30