Spring揭秘(九)——基于注解的依赖注入3

基于注解的依赖注入3

Spring2.5提供的基于注解的依赖注入,除了可以使用Spring提供的@Autowired和@Qualifier来标注相应类定义之外,还可以使用JSR250的@Resource。

@Resource与@Autowired不同,它遵循的是byName自动绑定形式的行为准则:

public class FXNewsProvider {
    @Resource(name="djNewsListener")
    private IFXNewsListener newsListener;

    @Resource(name="djNewsPersister") 
    private IFXNewsPersister newsPersister;
}

@Resource同样可以标注于属性域或者方法之上。


classpath-scanning功能介绍

到目前为止,我们还是需要将相应的对象的bean定义一个个地添加到IoC容器的配置文件中。与之前唯一的区别就是,不用在配置文件中明确指定依赖关系了。既然使用注解来表达对象之间的依赖注入关系,那为什么不搞的彻底一点儿,将那些几乎光秃秃的bean定义从配置文件中彻底消灭呢?classpath-scanning的功能正是因此而诞生的。

使用相应注解对组成应用程序的相关类进行标注之后,classpath-scanning功能可以从顶层包开始扫描。当扫描到某个标注了相应的注解之后,就会提取该类的相关信息,构建对应的BeanDefinition,然后把构建完的BeanDefinition注册到容器。

classpath-scanning功能的触发是由决定的。

默认扫描的注解类型是@Component。不过,在@Component语义基础上细化后的@Repository、@Service和@Controller也同样可以获得的青睐。

在扫描相关类定义并将它们添加到容器的时候,会使用一种默认的命名规则,来生成那些添加到容器的bean定义的名称。如果想改变这一默认行为,可以指定一个自定义的名称。
@Component(“myService”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值