问题描述:
最近我在自学spring框架使用Aspectj实现AOP时,编译代码出现如下错误(截取片段):
=========================================================================
警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'XXXXX' defined in class path resource [AOP01/applicationContext.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
=========================================================================
IDEA版本及依赖配置:
分析诊断:
按照网上对此错误的分析和处理经验,大概分区为三种:
1.jar包版本问题
2.注解错误
3.配置文件错误
但是我按照网上的经验操作并未解决我的问题,首先排除了注解错误问题,网上所说的execution()格式问题我也检查了依然报错。至于配置文件,有的说法是需要在mapper头部加入,这个也排除了,因为我的切面类和目标类并未定义属性。
default-autowire="byName"
直到后来我检查项目设置,查看所需jar包导入情况时,傻眼了。虽然版本正确,但是少导入一个包
导入jar包之后在编译,问题迎刃而解!
所以如果有和我一样spring框架的初学者一定要注意基础配置必须核准,这一个小小的问题,我从下午6点开始查到7点,查阅40多篇相关文档,最后才发现是jar包没导入。。。。。。。。。2333
解决方法:
1.选中右上角项目结构
2.左侧选择Libraries,点击加号
3.选择Java
4. 找的你Aspectj的安装位置,打开lib目录,找到所需jar包
5.选择你要应用的模块点击确定
6.一定要点击右下角的应用在退出
7.另外好要检查setting里的这些插件有没有启用