欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

分类:推荐文章 · 发布:2025-12-20 · 浏览:1

小伙伴们今天是平安夜-明天就是圣诞节! 你们都有许愿吗?

反正小编是许愿了,希望大家快快乐乐 ,平平安安

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

我们前面共享了 spring 完成 AOP 的办法,看着有那么一丢丢的麻烦,今日我们来了解一个完成方式简略,用起来更便利的结构叫做 AspectJ。

__X%V(Q016F`NAC(PL27VNW.png

AspectJ

AspectJ 是什么

AspectJ 是一个面向切面的结构,他定义了 AOP 的一些语法,有一个专门的字节码生成器来生成恪守 java 规范的 class 文件。

AspectJ 的告诉类型不仅包括我们之前了解过的四种告诉:前置告诉、后置告诉、盘绕告诉和反常告诉,而且还多出一种最终告诉即无论程序是否正常履行,最终告诉的代码会得到履行。

为什么说 AspectJ 更为简略,更加便利呢?

原因就是切入点表达式,切入点表达式能够标识切面织入到哪些类的那些办法傍边,就不需要像我们之前利用 spring 完成 AOP 那样各种配置。只要把切面的完成配置好了,再把这个切入点表达式写好就能够了。

语法格式如下:

execution(

modifiers-pattern?

//访问权限匹配 如public、protected

ret-type-pattern

//返回值类型匹配

declaring-type-pattern?

//全限定性类名

name-pattern(param-pattern)

//办法名(参数名)

throws-pattern?

//抛出反常类型

)

注意:中心以空格隔开,有问号的特点表明能够省略。

特殊符号

a: * 代表0到多个恣意字符

b: .. 放在办法参数中 ,代表恣意个参数 ,放在包名后面表明当前包及其所有子包途径

c: + 放在类名后,表明当前类及其子类,放在接口后,表明当前接口及其完成类

例如:

a:execution(public * *(..))

表明恣意的 public 办法

b:execution(* set *(..))

表明恣意包括以 set 字符最初的办法

c:execution(* com.ln.spring.service.impl.*.*(..))

表明com.ln.spring.service.impl的恣意类的恣意办法

AspectJ+Spring的环境搭建

引进jar包

aopalliance-1.0.jar

spring-aop-4.2.1.RELEASE.jar

aspectjweaver-1.6.6.jar

spring-aspects-4.2.1.RELEASE.jar

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

引进aop的约束

xml配置方式

编写切面类,在切面类里边定义各种告诉的完成办法。

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

在配置文件里边对 aop 进行配置

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

首要先注册我们的完成类和切面,之后进行 AspectJ的AOP的配置,进行一下测验

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

我们就只测验一下前置告诉哈,剩余的小伙伴们能够自己敲一下代码测验一下

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

基于注解方式

编写切面类,加上@Aspect注解,完成各种告诉,在完成告诉的办法上加上告诉的注解以及切入点表达式的注解。

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

在配置文件注册切面,且加上aspectJ的自动署理

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

测验类的话和上面一样,就是把加载的配置文件换一下。

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

好的今日的共享就到这里

怎么样我写理解了吗?

给大家共享一个结构

__X%V(Q016F`NAC(PL27VNW.png

好开心!

java学习AspectJ 框架与 spring 哪一个更容易更方便实现 AOP?

再见了

拜拜


上一篇:财富鸡拆分复利游戏开发
下一篇:澳真早教育儿:3岁以上孩子的家庭教育问题

相关文章

源码分类

热门源码

最新资讯

联系我们