spring注解介绍
spring中的新注解
@Configuration
作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写
@ComponentScan
作用:用于通过注解指定spring在容器中要扫描的包
属性:
value basePackages的作用是一样的,都是用于指定创建容器时要扫描的包
使用此注解就等同于在xml配置了
<!-- 告知spring在创建容器时要扫描的包 -->
<context:component-scan base-package="bruce"></context:component-scan>
@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:
name:用于指定bean的id。当不写时,默认值时当前方法的名称
细节:
当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。
查找的方式和Autowired注解的作用是一样的
一、注解service和dao
代替配置Service和配置dao
如业务层对象 Service
<bean id="accountService" class="bruce.service.impl.AccountServiceImpl"> </bean>
采用注解@Service
二、另起一类SpringConfiguration.class(等同于bean.xml)
该类是一个配置类,它的作用和bean.xml是一样的
1.@Configuration指出他是一个配置类
2.@ComponentScan告知spring要扫描的包
等同于xml中的
<context:component-scan base-package="bruce"></context:component-scan>
三、用于创建一个QueryRunner对象 创建DataSource对象
@Bean 作为bean对象存入spring的ioc容器中
1.创建一个QueryRunner
等同于
2.创建DataSource对象
resource下创建properties
四、获取容器
@Configuration细节
当配置类作为AnnotationConfigApplicationContext对象创建的参数时,@Configuration可以不写
但是另一个注解类不能省略
如果也不想写就加上就好
但是这就变成了兄弟关系
所以这时候可以用@Import 就不用那么花里胡哨了
细小配置类都Import到主配置类