@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
 
 在CODE上查看代碼片派生到我的代碼片
  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM