1.【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
2.SSM框架复习总结:面试高频题(含解析)+学习笔记+学习路线图
3.阿里技术官架构使用总结:Spring源码+MyBatis源码+Tomcat架构解析等
【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
在配置类上添加@EnableAspectJAutoProxy注解,源码能够开启注解版的深度AOP功能。这意味着,解析如果在AOP中要启用注解版的源码AOP功能,就需要在配置类上添加@EnableAspectJAutoProxy注解。深度让我们来看看@EnableAspectJAutoProxy注解的解析7000元源码源码,如下所示。源码
从源码可以看出,深度@EnableAspectJAutoProxy注解使用@Import注解引入了AspectJAutoProxyRegister.class对象。解析那么,源码AspectJAutoProxyRegistrar是深度做什么的呢?我们点击到AspectJAutoProxyRegistrar类的源码中,如下所示。解析
可以看到AspectJAutoProxyRegistrar类实现了ImportBeanDefinitionRegistrar接口。源码我们回顾ImportBeanDefinitionRegistrar接口的深度定义,如下所示。解析
通过ImportBeanDefinitionRegistrar接口,我们可以实现将自定义的pvnet 源码组件添加到IOC容器中。也就是说,@EnableAspectJAutoProxy注解使用AspectJAutoProxyRegistrar对象自定义组件,并将相应的组件添加到IOC容器中。
在AspectJAutoProxyRegistrar类的registerBeanDefinitions()方法中设置断点,我们以debug的方法来运行AopTest类的testAop()方法。当程序运行到断点位置时,我们可以看到程序已经暂停,IDEA的左下角显示了方法的调用栈。
在registerBeanDefinitions()方法中,首先调用AopConfigUtils类的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法来注册registry。在registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法中,直接调用了重载的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法。在重载的registerAspectJAnnotationAutoProxyCreatorIfNecessary()方法中,传入了AnnotationAwareAspectJAutoProxyCreator.class对象。
在registerOrEscalateApcAsRequired()方法中,接收到的会说源码Class对象的类型为:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator。然后,我们继续跟进代码。
在registerOrEscalateApcAsRequired()方法中,首先判断registry是否包含org.springframework.aop.config.internalAutoProxyCreator类型的bean。接下来,我们继续看代码。
最终,AopConfigUtils类的registerOrEscalateApcAsRequired()方法中,会通过registry调用registerBeanDefinition()方法注册组件,并注册的bean的名称为org.springframework.aop.config.internalAutoProxyCreator。
接下来,我们继续看AspectJAutoProxyRegistrar类的registerBeanDefinitions()源码。我们通过AnnotationConfigUtils类的attributesFor方法来获取@EnableAspectJAutoProxy注解的信息。接下来,我们继续判断proxyTargetClass属性的值是否为true,如果为true则调用AopConfigUtils类的siren源码forceAutoProxyCreatorToUseClassProxying()方法;继续判断exposeProxy属性的值是否为true,如果为true则调用AopConfigUtils类的forceAutoProxyCreatorToExposeProxy()方法。
综上所述,向Spring的配置类上添加@EnableAspectJAutoProxy注解后,会向IOC容器中注册AnnotationAwareAspectJAutoProxyCreator。
了解了这些之后,我们就可以关注「冰河技术」微信公众号,后台回复不同的关键字获取相应的PDF文档。这些文档都是由冰河原创并整理的超硬核教程,包括《深入浅出Java 种设计模式》、《Java8新特性教程》和《亿级流量下的分布式限流解决方案》,都是面试必备的资料。
最后,如果你觉得这篇文章对你有帮助,别忘了点个赞,给个在看和转发,让更多的applemusic源码人看到,一起学习,一起进步!
SSM框架复习总结:面试高频题(含解析)+学习笔记+学习路线图
深入解析Spring框架的高频面试题和学习要点。了解Spring在SSM框架中的角色与功能,掌握Spring的事务处理机制、依赖注入(IoC)原理,以及配置文件和注解的应用。
Spring的核心模式与实现原理,学习Spring的配置文件内容与主要注解。
构建Spring学习思维脑图,整理Spring学习笔记,包括Spring源码深入解析和Spring实战指南。
探索Spring MVC的控制器设计、请求映射注解、对象快速获取、返回值处理和转发、重定向机制。
理解Spring MVC与Ajax的交互方法,以及与Struts2的比较,涉及入口、开发方式和请求处理的不同之处。
Mybatis面试题解析,包括Mybatis与Ibatis的区别、接口绑定、注解与xml绑定的使用、查询处理与配置一对多、一对多。
理解Mybatis的工作原理,掌握${ }与#{ }的区别,以及Mybatis的优势。
提供Mybatis技术内幕资料和SSM框架技术图谱。
整理并分享一份JAVA核心知识点PDF,供学习者参考。
阿里技术官架构使用总结:Spring源码+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有落后可能就会被淘汰掉,因此我们需要不断审视自己,通过学习来提升自己。
对于大多数程序员而言,阿里一直是目标,但进入大厂工作并非易事。今日,由阿里一线P8架构师揭秘,对其使用的技术进行总结,此PDF总结主要涉及Spring源码、MyBatis源码以及Tomcat架构解析等,以期帮助大家提升。
如果你需要PDF版本,可直接点击下方链接免费获取。
第一部分:Spring源码深度解析
一、核心实现
二、企业应用
第二部分:MyBatis源码解析
一、MyBatis入门
二、配置文件解析过程
三、映射文件解析过程
四、SQL执行流程
五、内置数据源
六、缓存机制
七、插件机制
第三部分:Tomcat架构解析
一、Tomcat介绍
二、Tomcat总体架构
三、Catalina
四、Coyote
五、Jasper
六、Tomcat配置管理
七、Web服务器集成
八、Tomcat集群
九、Tomcat安全
十、Tomcat性能调优
十一、Tomcat附加功能
总结:
作为Java程序员,务必不断充实自己的知识储备,关于阿里等一线大厂所使用的技术,应心中有数。
最后,提醒一句,所学知识均为己有,如果你需要这些架构技术使用总结,我愿意免费分享,有兴趣的老铁请点击下方链接免费领取。若支持我这篇文章,不妨点赞+喜欢+收藏一键三连,谢谢!