Spring Boot 实例化bean如何选择代理方式
Spring Boot 实例化bean如何选择代理方式
图1
我们再回顾一下之前的事务源码分析有提到
执行到AbstractAutowireCapableBeanFactory.initializeBean()->applyBeanPostProcessorsAfterInitialization(wrappedBean, beanName)->AbstractAutoProxyCreator.postProcessAfterInitialization()->AbstractAutoProxyCreator.wrapIfNecessary()->DefaultAopProxyFactory.createAopProxy()
链条创建代理
public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { if (config.isOptimize() || config.isProxyTargetClass() || hasNoUserSuppliedProxyInterfaces(config)) { Class<?> targetClass = config.getTargetClass(); if (targetClass == null) { throw new AopConfigException("TargetSource cannot determine target class: " + "Either an interface or a target is required for proxy creation."); } //如果是接口 if (targetClass.isInterface() || Proxy.isProxyClass(targetClass)) { return new JdkDynamicAopProxy(config); } //如果不是接口 return new ObjenesisCglibAopProxy(config); } else { return new JdkDynamicAopProxy(config); } }
通过上面的方式判断cglib还是jdk动态代理;
以上就是Spring Boot 实例化bean如何选择代理方式的详细内容,更多关于SpringBoot实例化bean代理的资料请关注脚本之家其它相关文章!
相关文章
浅析javax.servlet.Servlet,ServletContext接口
本篇文章是对javax.servlet.Servlet,ServletContext接口进行了纤细的分析介绍,需要的朋友参考下2013-07-07SpringBoot集成JWT生成token及校验方法过程解析
这篇文章主要介绍了SpringBoot集成JWT生成token及校验方法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-04-04java中URLencode、URLdecode及Base64加解密转换
本文主要介绍了java中URLencode、URLdecode及Base64加解密转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01
最新评论