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

  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. }  
@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


            </div>
        </article>


猜你喜欢

转载自blog.csdn.net/heatdeath/article/details/80211194
今日推荐