Spring探索(三):IoC容器之扩展

1.基于注解的依赖注入
Spring 2.5提供的基于注解的依赖注入功能延续了Spring框架内在IoC容器设计与实现上的一致性.除了依赖关系的"表达"方式上不同,底层的实现机制基本保持一致.

1.1 注解版的自动绑定:@Autowired
@Autowired通过org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor与IoC容器发生关联,从而实现byType的自动绑定功能.

1.2 @Qualifier的陪伴
@Autowired是按照类型(byType)进行匹配,@Qualifier则是为了解决当@Autowired标注的依赖对象在容器中有多个实例时,应该把具体哪个实例注入进来的问题.@Qualifier实际上是byName自动绑定的注解版.

1.3 @Autowired之外的选择—使用JSR250标注依赖注入关系
@Resource @PostConstract @PreDestroy
上面注解通过org.springframework.context.annotation.CommonAnnotationBeanPostProcessor与IoC容器发生关联.
@Resource与@Autowired不同,它采用的是byName自动绑定方式.
@PostConstract和@PreDestroy确切是说主要用于标注对象的生命周期管理相关方法,与Spring的InitializingBean和Disposable接口,以及配置项中的init-method和destroy-method起到类似的作用.

1.4 classpath-scanning
classpath-scanning功能可以从某一顶层包(base-package)开始扫描,当扫描到某个类标注了相应的注解后,就回提取该类的相关信息,构建对应的BeanDefinition,然后把构建完的BeanDefinition注册到容器.
classpath-scanning功能的触发是由<context:component-scan>决定的.
<context:component-scan>默认扫描的注解类型是@Component,当然,在@Component语义基础上细化后的@Repository,@Service,@Controller也可以被其扫描到.
<context:component-scan>在扫描类并添加到容器的时候,会使用一种默认的命名规则,(org.springframework.beans.factory.support.DefaultBeanNameGenerator)来生成那些添加到容器的bean定义的名称(beanName),默认是类名首字母小写。如果开头都是大写的类名(如FTxx),bean定义名称实际上就相当于类名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值