@Annotation注解原理

因为在beans.xml配置文件中写了 <context:component-scan base-package="com.bjsxt"/>


所以在 ClassPathXmlApplicationContext文件初始化的时候,就是下面标注的那条这句



这个文件去读beans.xml文件,因为在这个文件写了component-scan,所以他会去扫描com.bjsxt这个包下所有的类,他扫描的时候主要扫描看哪个包中哪个类的头上写了@Component,如果写了,他就会帮这个类初始化一个对象,他的key就是@Component指定的的名字,如果没有写名字,他的key就是这个类名首字母改成小写。



当我们在测试类中使用getBean("userService")去拿bean的时候,他就会去容器里面找是否有一个叫userService的对象,我们这里写了@Component("userService"),所以就找到了userService的对象。在初始化这个对象的过程中,由于在这个类的一个方法public void setUserDAO(UserDAO userDAO){this.userDAO=userDAO;}头上写了@Resource(name="u"),如下图所示,他又会在容器中找有没有名字为u的那个bean,如果找到的话把他注入到参数userDAO中,参数再传进来,当然就注入到成员变量里了。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值