Spring中@Reso 香港云主机urce注解的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CommonAnnotationBeanPostProcessor是Spring中用于处理JavaEE5中常用注解(主要是EJB相关的注解)和Java6中关于JAX-WS相关的注解,可以处理@PostConstruct、@PreDestroy等Bean生命周期相关事件的注解,该后置处理最核心的是处理@Resource
注解,同时还可以处理JAX-WS相关的注解。Spring容器在每个Bean实例化之后,调用后置处理器CommonAnnotationBeanPostProcessor的postProcessMergedBeanDefinition
方法,查找该Bean是否有@Resource注解。Spring在每个Bean实例化的时候,调用populateBean
进行属性注入的时候,即调用postProcessPropertyValues
方法,查找该Bean是否有@Resource注解。继续追踪,看metadata.inject(bean, beanName, pvs)
方法这里和AutowiredAnnotationBeanPostProcessor
不同的是,AutowiredAnnotationBeanPostProcessor调用的element.inject(target, beanName, pvs)
方法是自己实现的,如图: 而CommonAnnotationBeanPostProcessor
调用的element.inject(target, beanName, pvs)
是原始方法,如下:这里重点看getResourceToInject(target, requestingBeanName)
方法,该方法的实现是具体获取@Resource中的值的。 我们可以看到在CommonAnnotationBeanPostProcessor类中,对该方法有实现:lazyLookup
是CommonAnnotationBeanPostProcessor内部类ResourceElement的一个成员变量,表示是否懒加载,默认是false。 我们先来看下非懒加载的流程,即getResource(this, requestingBeanName)
:autowireResource代码:这里的逻辑比较简单:首先判断@Resource是按名称来查询还是类型,如果是类型,则调用依赖解析器根据类型从Spring容器中查找(这里和@Autowired的代码一样:Spring注解@Autowired源码分析)如果是按名称,则直接调用BeanFactory的getBean()
方法,根据BeanName从Spring容器中查找最后由于发生了依赖注入,需要从新注册Bean的依赖关系@Resource注解既可以按照名称来注入,也可以按类型来注入。关于Spring中@Resource注解的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。
这篇文章主要介绍“win7电脑桌面壁纸不能更换怎么解决”,在日常操作中,相信很多人在win7电脑桌面壁纸不能更换怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win7电脑桌面壁纸不能更换怎么解决”的疑惑有所帮助!接下来,…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。