2017-04-05 125 views
7

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

我已经看到了无数的例子,它被用于类定义 - 但没有例子,但对于@Bean方法。

引述documentation

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

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

回答

13
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类有proeprties网址,用户名,密码,driverClassName,所以春天开机它们映射到创建的对象。该DataSource类的

实施例:

public class DataSource { 
     private String url; 
     private String driverClassName; 
     private String username; 
     private String password; 
     //getters & setters, etc. 
    } 

换句话说,这具有相同的效果,如果你初始化一些豆与原型说明(@Component,@Service等等) 例如

@Component 
@ConfigurationProperties(prefix="spring.datasource") 
public class DataSource { 
      private String url; 
      private String driverClassName; 
      private String username; 
      private String password; 
      //getters & setters, etc. 
     } 
+0

谢谢你的例子。为了更清楚,你还可以添加DataSource类 – tMJ

+0

@tMJ当然,请参阅我的编辑。 –

+0

这很有趣 - 我现在没有看到bean方法的要点。 DataSource类不能直接使用'@ Autowired'吗? – tMJ

相关问题