有事没事领个红包

基于注解配置spring

1 对 bean 的标注基于注解方式有3个注解

  • @Component
  • @Repository 对DAO类进行标注
  • @Service 对Service类进行标注
  • @Controller  对Controller类进行标注

2 想要 spring 获得基于注解的bean 需要配置 <context:component-scan /> 进行扫描,并从注解中获得配置信息。

 

3 自动装配 bean ,使用 @Autowired 注解实现 Bean 的依赖注入。@Autowired 默认按照类型匹配 byType 的方式在容器中查找匹配的bean。当且仅有一个匹配的 bean 时,spring 将其注入到

@Autowired 标注的变量中。

如果在Spring启动时没有一个和标注变量类型匹配的 bean ,则会抛出 NoSuchBeanDefinitionException 异常,如果希望 Spring 即使找不到匹配的 bean 也不要抛出异常,可以使用

@Autowired(required=false) 进行标注

 

3.2 如果容器中有一个以上匹配的 bean ,则可以通过使用@Qualifier 注解限定 bean 名称

 

3.3 @Autowired 可以对类方法进行标注,如果方法有多个入参数,默认情况下,Spring 将自动选择匹配入参类型的 bean 进行注入,spring 允许对方法入参标注 @Qualifier 以指定

注入 bean 的名称

说明:虽然spring 支持属性和方法标注 @Autowired ,但是推荐使用方法上注入,方便以后的单元测试。因为标注在私有属性中很难用编程方式设置属性值

 

3.4 延迟依赖注入,通过使用 @Lazy 注解的bean , 不会立即注入,而是会延迟到调用此属性的时候才会注入属性值。

@Lazy 必须注解和 bean 标注同时使用

 

4 @Scope 用于指定 bean 的作用域范围,singleton,prototype。使用<bean> 配置时可以通过 init-method 和 destroy-method 属性指定 bean 的初始化及销毁前执行的方法。

相应的注解方法是通过 @PostControst 和 @PreDestroy, 在bean 中通过这两个标签指定 init-method 和 destroy-method 方法

 

 

posted @ 2017-08-15 18:07  crazyCodeLove  阅读(291)  评论(0编辑  收藏  举报