@Configuration和@Bean的用法和理解

来源:互联网 发布:2017淘宝双11活动规则 编辑:程序博客网 时间:2024/05/23 19:48

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


0 0
原创粉丝点击