@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類

@Configuration  
public class ExampleConfiguration {  
  
    @Value("com.mysql.jdbc.Driver")  
    private String driverClassName;  
  
    @Value("jdbc://xxxx.xx.xxx/xx")  
    private String driverUrl;  
  
    @Value("${root}")  
    private String driverUsername;  
  
    @Value("123456")  
    private String driverPassword;  
  
    @Bean(name = "dataSource")  
    public DataSource dataSource() {  
        BasicDataSource dataSource = new BasicDataSource();  
        dataSource.setDriverClassName(driverClassName);  
        dataSource.setUrl(driverUrl);  
        dataSource.setUsername(driverUsername);  
        dataSource.setPassword(driverPassword);  
        return dataSource;  
    }  
  
    @Bean  
    public PlatformTransactionManager transactionManager() {  
        return new DataSourceTransactionManager(dataSource());  
    }  
  
}


這樣,在項目中

@Autowired

private DataSource dataSource;

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


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