当前位置: 首页 > news >正文

泰州网站建设电话彩票网站怎么做代理

泰州网站建设电话,彩票网站怎么做代理,宿州建设网站,公司营销网络AOP对象是如何创建的 对于熟悉Spring IOC流程源码的同学来说#xff0c;一定了解bean的整个生命周期#xff0c;也就是从实例化、属性填充、初始化三个过程。那么对于Bean 工厂来说#xff0c;是如何保证需要创建代理的对象创建代理的呢。 从图中可以看到#xff0c;本质…AOP对象是如何创建的 对于熟悉Spring IOC流程源码的同学来说一定了解bean的整个生命周期也就是从实例化、属性填充、初始化三个过程。那么对于Bean 工厂来说是如何保证需要创建代理的对象创建代理的呢。 从图中可以看到本质是通过注解 EnableAspectJAutoProxy, 通过引入 Import(AspectJAutoProxyRegistrar.class) 顶层其实就是一个BPP 核心调用流程图就在这里这里可以通过debug的方式查找。 Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Import(MyAopAspectJPostProcessor.class) public interface MyEnableAspectjAutoProxy { }Configuration ComponentScan(com.qxlx.aopprocessor) MyEnableAspectjAutoProxy public class Config {}最终通过自定义注解的方式 也实现了这种一个简易版本的AOP 详解 EnableAspectJAutoProxy proxyTargetClass /*** Indicate whether subclass-based (CGLIB) proxies are to be created as opposed* to standard Java interface-based proxies. The default is {code false}.*/boolean proxyTargetClass() default false;其实就是是否基于CGlib进行动态代理对于接口默认时false。 exposeProxy /*** Indicate that the proxy should be exposed by the AOP framework as a {code ThreadLocal}* for retrieval via the {link org.springframework.aop.framework.AopContext} class.* Off by default, i.e. no guarantees that {code AopContext} access will work.* since 4.3.1*/boolean exposeProxy() default false; 其实这个字段的含义就是从4.3.1 版本开始如果设置为true的话会把当前对象的代理对象存储到ThreadLocal对象中。 // 可以用来解决 本类同方法调用事务失效时 获取代理对象IUserService userService (IUserService) AopContext.currentProxy();userService.delete();其实就是根据exposeProxy的值 判断是否true将当前代理对象存储到ThreadLocal中。 // JdkDynamicAopProxy 代理if (this.advised.exposeProxy) {// Make invocation available if necessary.oldProxy AopContext.setCurrentProxy(proxy);setProxyContext true;} // 本质其实就是ThreadLocal private static final ThreadLocalObject currentProxy new NamedThreadLocal(Current AOP proxy); AnnotationAwareAspectJAutoProxyCreator 再往下看的话 其实就是分别JDK和Cglib生成代理的代码了。 1.BeanPostProcess创建代理。考虑循环引用问题 2.ProxyFactory setTarget、setAdvisor、 3.底层的代码 AOPProxy CglibAopProxy JdkDnmiacAopProxy 1.AOP创建了动态代理 2.动态字节码动态 运行时执行 是如何执行的 代理是在运行的过程中才会把原始对象的功能与额外功能进行整合。 动态代理 运行效率低于静态代理代理类执行过程 这里总整体进行总结下一个是代理对象的生成是在bean after BPP阶段进行调用生成的另外一个就是实际方法的调用就是在原有的类基础上代理类加了拦截表达式根据表达式判断当前方法是否需要执行对应的前置 后置 等方法完整额外功能的添加。 感兴趣的可以通过 看 具体的源码 https://github.com/qxlx/spring-code/blob/main/src/main/java/com/qxlx/aopprocessor/
http://www.w-s-a.com/news/709965/

相关文章:

  • 泉州网站制作推广山西网站开发建设
  • 百度商桥怎样绑定网站百度推广登陆
  • 重庆网站建设论坛株洲论坛
  • 网站怎么做切换中英文济南广运建设公司网站
  • 网页游戏网站搭建免费建网站哪个模板多
  • 公司起名打分最准的免费网站直播网站app开发
  • 医疗器械类网站前置审批网站临时域名
  • 金融网站策划方案网站开发表格整体页面居中
  • 句容本地网站黄石下陆区建设局网站
  • 免费网站服务陕西省咸阳市建设银行网站
  • 网站建设活动计划做网站意义
  • 莱芜新闻主持人名单seo sem 外贸建站 网站建设 文化墙设计
  • 易语言可以做网站嘛赣州网站建设开发
  • 网站建设规范布局网站建设费往什么科目
  • 乐清手机网站设计哪个汽车网站汽贸店免费做
  • 网站建设课程总结报告推广软文
  • 企业网站哪里可以做烟台seo网站推广
  • 怎样建设网站优化珠海网站建设开发
  • 泰兴住房和城乡建设厅网站福州app开发
  • 免费制作公司网站seo前线
  • 导购网站怎么推广有网站源码怎么搭建网站
  • 网站开发问题杭州制作公司网站
  • 网站推广seo是什么wordpress 去除顶部
  • 建筑学不会画画影响大吗电子商务沙盘seo关键词
  • 重庆网站建设找承越上海建设工程招投标网
  • 网站建设四个步骤下单的网站建设教程
  • 网站建设合同的验收表响应式网站建设哪家好
  • 手机网站建设视频长沙百家号seo
  • 网站未备案怎么访问网站开发前端需要学什么
  • 正黄集团博弘建设官方网站wordpress设置固定链接和伪静态