Spring 注解

原文:http://blog.csdn.net/chjttony/article/details/6286144

  • 自动扫描

为了让Spring能够扫描类路径中的类并识别出注解,需要在XML配置文件中启用Bean的自动扫描功能,这可以通过<context:component-scan />实现。

 

  • @Repository

它用于将DAO层的类标识为Spring Bean,它还将所标注的类抛出的数据访问异常封装为Spring的数据访问异常类型。

  • @Componet @Service @Controller

@Componet是一个泛化的概念,仅仅表示一个Bean。

@Service通常作用于业务层。

@Controller通常作用于控制层。

  • 命名策略

当一个Bean被自动检测到时,会根据那个扫描器的BeanNameGenerator策略生成它的bean名称,如果不想使用默认bean命名策略,可以提供一个自定义的全名策略。

  • 作用域

默认作用域是“singleton”,可以使用@Scope注解秋修改作用域。

  • 指定生命周期回调方法

(1)第一种方式:是实现Spring提供的两个接口:InitializingBean和DisposableBean,如果希望在Bean初始化完成之后执行一些自定义操作,则可以让Bean实现InitializingBean接口,该接口包含一个afterPropertiesSet()方法,容器在为该Bean设置了属性之后,将自动调用该方法。如果Bean实现了DisposableBean接口,则容器在销毁该Bean之前,将调用该接口的destroy()方法。

(2)在XML文件中使用<bean>的init-method和destroy-method属性指定初始化之后和销毁之前的回调方法。

<bean id=”userService”   
class=”bookstore.service.UserService”   
init-method=”init” destroy-method=”destroy”>   
   …  
</bean>

(3)JSR-250

@PostConstruct @PreDestroy

只需要将他们标注于初始化之后执行的回调方法和销毁之前执行的回调方法上。由于使用了注解,因此需要配置相应的Bean后处理器。

 

<context:annotation-config /> 

 

 

 

 

 

  • @Required

Spring进行依赖检查时,只会判断属性是否使用了Setter注入,始果某个属性没有使用Setter注入,即使通过构造函数已经为该属性注入了值,仍认为它没有执行注入,它只能标注到Setter方法上。

  • 自动装配策略

根据指定的自动装配规则,将某个Bean所需要引用类型的Bean注入进来。<bean>元素提供了一个自动装配类型的autowire属性,该属性:

(1)no,显示指琮不使用自动装配。

(2)byName,如果存在一个和当前属性名字一致的Bean,则使用该Bean进行注入。

(3)byType,如果存在一个当前属性类型一对我的Bean(或子类型)

(4)construct,和byType类似,只不过它是针对构造函数注入而言。

(5)autodetect,自动决定是byType还是construt。

  • @Autowired

只能根据类型进行匹配

(1)作用于简单方法时,会产生一个副作用,就是在容器初始化该Bean实例的时候会调用该方法。

(2)当容器中存在多个Bean的类型与需要注入的相同时,注入将不能执行,可以在@Autowired后面增加一个@Qualifier标注,

  • @Resource

根据类型自动装配

注解有一个name属性 ,如果没有指定name属性,那么默认值就是字段或者属性的名字。

  • @Configuration @Bean

使用AnnotationConfigApplicationContext替代XML配置方式。

 

最后欢迎大家访问我的个人网站:1024s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值