基于注解配置spring

Posted pclover11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于注解配置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 方法

 

 

以上是关于基于注解配置spring的主要内容,如果未能解决你的问题,请参考以下文章

Spring之基于注解配置

基于注解配置spring

spring学习5:基于注解实现spring的aop

什么是基于 Java 的 Spring 注解配置? 给一些注解的例子?

Spring基于纯注解方式的使用

基于注解的Ioc配置 —— Spring