spring注解原理:从Controller注解切入了解spring注解原理

Controller类使用继承@Component注解的方法,将其以单例的形式放入spring容器,如果仔细看的话会发现每个注解里面都有一个默认的value()方法,它的作用为当前的注解声明一个名字,一般默认为类名,然后spring会通过配置文件中的<context:component-scan>的配置,进行如下操作:

  1. 使用asm字节码技术扫描.class文件,并将包含@Component及元注解为@Component的注解@Controller、@Service、@Repository或者其他自定义的的bean注册到beanFactory中,

  2. 然后spring在注册处理器

  3. 实例化处理器,然后将其放到beanPostFactory中,然后我们就可以在类中进行使用了。

  4. 创建bean时,会自动调用相应的处理器进行处理。

举例注解@Autowired 。对于这个注解,您需要在xml中配置这个注解的处理器

AutowiredAnnotationBeanPostProcessor,这个处理器会扫描容器中所有的bean对象,发现bean中拥有@Autowired注解的时候,会自动去找到容器中和这个注解修饰类型匹配的bean对象,并注入到对应的地方去。

  • 那为什么AutowiredAnnotationBeanPostProcessor这个处理器对象我怎么在配置文件中没有看到设置呢?
    那是因为在spring解析<context:component>标签的时候默认这个注解被隐示配置了,还有其他的注解处理器,如CommonAnnoationBeanPostProcessor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值