Spring Framework源码使用 spring-aspects AOP遇到的问题
在编译好的Spring Framework使用Aspects AOP
继续上一篇,编译Spring Framework5.1源码文章。现在要使用Aspects AOP也可能会遇到一些问题,现在这篇文章带你们解决这个问题。
1.导入AOP
我们先看看导入spring-aspects 这个包,然后在一个配置类打上@EnableAspectJAutoProxy这个注解会出现什么样的错误。
我们在配置一个AOP切面类,在类里面声明一个切入点,声明前置通知、后置通知、环绕通知。然后开始启动spring,
会出现以下错误。
1.程序包org.springframework.cache.jcache.config不存在
2.Error:(38, 49) java: 找不到符号 符号: 类 AbstractJCacheConfiguration
3.Error:(42, 16) java: 找不到符号 符号: 类 JCacheCacheAspect
4.位置: 类 org.springframework.cache.aspectj.AspectJJCacheConfiguration Error:(43, 17) java: 找不到符号
解决办法: 因为Idea默认使用的是Javac编译器,而aspect关键字它不认识,所以我们就需要下载AspectJ编译器Ajc了。
2.下载AspectJ编译器
去AspectJ官网下载AspectJ编译器,下载aspectj1.9.5的。
链接地址: https://www.eclipse.org/aspectj/downloads.php
下载好了之后就是一个jar包,在jar包的位置右键菜单打开cmd控制台。
运行 (java -jar aspectj-1.9.5.jar) 命令安装ajc编译器。
弹出安装窗口,点击下一步。然后选择JDK安装的目录,点击下一步,选择把编译器安装到哪一个文件夹。这里我选择安装到和aspectj-1.9.5.jar同一级目录下面,点击下一步,安装完成。
3.设置IDEA编译器
打开Idea
先安装Aspectj插件,并启用此插件。
将Idea编译器设置为ajc,然后设置AspectJ安装目录下的lib文件夹中的aspectjtools.jar文件,再勾选Delegate to Javac选项。
将 spring-aop_main 和 spring-aspectjs_main 两个模块添加 AspectJ Facets,打开:File–Project Structure–Modules
添加完后项目结构是这样的,然后点击完成。
把项目重新build project,然后在运行自己项目的main方法,AOP测试在控制台打印出来了。到此为止在源码中可以使用aspectj aop了。
到此为止我们就可以阅读spring aop 的源码了,这里已经把AOP的后置处理器添加进来了。
本文地址:https://blog.csdn.net/weixin_41657488/article/details/110223801
推荐阅读
-
详解spring cloud Feign使用中遇到的问题总结
-
详解spring cloud Feign使用中遇到的问题总结
-
framework7的改进,以及与vue组合使用遇到的问题以及解决方法 (附vue的原理)
-
spring注解:@Value在使用中遇到的问题
-
framework7的改进,以及与vue组合使用遇到的问题以及解决方法 (附vue的原理)
-
IDEA编译spring源码遇到的问题
-
struts2+spring集成bug——使用AOP时可能遇到的问题分析
-
struts2+spring集成bug——使用AOP时可能遇到的问题分析
-
Spring Framework源码使用 spring-aspects AOP遇到的问题