本质
我一直有一个问题,@configuration和@component有什么区别?他们可以将对象放在弹簧容器中,那么它们有什么区别?
有了这种困惑,我终于找到了今天的答案。
@configuration注意:
在上一篇文章中,我曾说过@configuration是 @component。 @configuration包含@component的所有函数的派生注释。他有什么特征?他是如何在春季容器中实施班级的?让我们来看看
特征:
从特征中,我们发现@配置将配置类放置在通过动态代理实际实现的容器中,并且通过特定代码调用以下方法以查看以下方法:
CGLIB动力学生成增强类:
调用CGLIB代理的方法时,调用呼叫方法时,调用呼叫将被调用:
最后,它将与BeanMethodinterceptor和BeanFactoryAwareMethodinterceptor的方法匹配:
最后将@Bean修改的对象放在弹簧容器中。
在这里,我们非常清楚@configuration的实施原则。
@component没有使用动态代理,他将直接将配置类放入弹簧容器中。