@Configuration和@Bean的用法和理解

Spring Boot提倡約定優於配置,如何將類的生命週期交給spring


1、第一種自己寫的類,Controller,Service。 用@controller @service即可

2、第二種,集成其它框架,比如集成shiro權限框架,集成mybatis分頁插件PageHelper,第三方框架的核心類都要交於Spring大管家管理

@Configuration可理解爲用spring的時候xml裏面的<beans>標籤

@Bean可理解爲用spring的時候xml裏面的<bean>標籤

Spring Boot不是spring的加強版,所以@Configuration和@Bean同樣可以用在普通的spring項目中,而不是Spring Boot特有的,只是在spring用的時候,注意加上掃包配置

<context:component-scan base-package="com.xxx.xxx" />,普通的spring項目好多註解都需要掃包,纔有用,有時候自己註解用的挺6,但不起效果,就要注意這點。

Spring Boot則不需要,主要你保證你的啓動Spring Boot main入口,在這些類的上層包就行


就像這樣,DemoApplication是啓動類,關於啓動類的位置放置,在另一篇博客有專門的去分析。

@Configuration和@Bean的Demo類

[java] view plain copy
  1. @Configuration    
  2. public class ExampleConfiguration {    
  3.     
  4.     @Value("com.mysql.jdbc.Driver")    
  5.     private String driverClassName;    
  6.     
  7.     @Value("jdbc://xxxx.xx.xxx/xx")    
  8.     private String driverUrl;    
  9.     
  10.     @Value("${root}")    
  11.     private String driverUsername;    
  12.     
  13.     @Value("123456")    
  14.     private String driverPassword;    
  15.     
  16.     @Bean(name = "dataSource")    
  17.     public DataSource dataSource() {    
  18.         BasicDataSource dataSource = new BasicDataSource();    
  19.         dataSource.setDriverClassName(driverClassName);    
  20.         dataSource.setUrl(driverUrl);    
  21.         dataSource.setUsername(driverUsername);    
  22.         dataSource.setPassword(driverPassword);    
  23.         return dataSource;    
  24.     }    
  25.     
  26.     @Bean    
  27.     public PlatformTransactionManager transactionManager() {    
  28.         return new DataSourceTransactionManager(dataSource());    
  29.     }    
  30.     
  31. }  


這樣,在項目中

@Autowired

private DataSource dataSource;

的時候,這個dataSource就是我們在ExampleConfiguration中配的DataSource


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章