Spring学习之旅-核心高级篇(3)

64 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情


写在前面

作为一个java程序员,spring应该都不会陌生了吧?

对于大部分程序员来说,spring的入门,估计跑起一个框架,熟悉一下开发的流程,基本上就掌握spring框架的开发了。

随着开发年限的变大,我们不能仅仅是掌握到这个地步,更应该深入的学习spring框架。

这不,接下来就是spring框架的学习之旅了,希望可以帮助到大家。

一、AOP介绍

1.1 AOP实现之AspectJ

  • AspectJ是一个Java实现的AOP框架,它能够对java代码进行AOP编译(一般在编译期进行) , 让java代码具有AspectJ的A0P功能(当然需要特殊的编译器)

  • 可以这样说AspectJ是目前实现AOP框架中最成熟。功能最丰富的语言。更幸运的是, AspectJ与java程序完全兼容,几乎是无缝关联,因此对于有java编程基础的工程师,上手和使用都非常容易.

  • 了解AspectJ应用到java代码的过程(这个过程称为织入) , 对于织入这个概念,可以简单理解为aspect(切面)应用到目标函数(类)的过程。

  • 对于织入这个过程, 一般分为动态织入和静态织入,动态织入的方式是在运行时动态将要增强的代码织入到目标类中,这样往往是通过动态代理技术完成的, 如Java JDK的动态代理( Proxy ,底层通过反射实现)或者CGLIB的动态代理(底局通过继承实现)。Spring AOP采用的就是基于运行时增强的代理技术

  • ApectJ采用的就是静态织入的方式。ApectJ主要采用的是编译期织入,在这个期间使用AspectJ的acj编译器(类似javac)把aspect类编译成class字节码后。在java目标类编译时织入,即先编译aspect类再编译目标类。

image.png


好了,以上就是Spring学习之旅-核心高级篇(3) 的全部内容了。

今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^

如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!

image.png