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代理的资料请关注脚本之家其它相关文章!
相关文章
Maven Plugin的@Mojo和@Execute的具体使用
本文主要介绍了Maven Plugin的@Mojo和@Execute的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09
解决ThingsBoard编译报错问题:Failure to find org.gradle:gradle-too
这篇文章主要介绍了ThingsBoard编译报错:Failure to find org.gradle:gradle-tooling-api:jar:6.3,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03
Spring Boot 集成 Apache IoTDB 详细过程
本文介绍了SpringBoot项目集成Apache IoTDB的完整流程,包括集成前准备、核心依赖配置、配置文件设置、数据操作实现、高级特性配置、常见问题与排查等内容,通过本文指南,开发者可以快速搭建稳定、高效的物联网时序数据存储系统,并根据业务需求选择合适的技术方案2026-05-05


最新评论