IDEA中给Spring项目配置aop后报错org.springframework.beans.factory.BeanCreationException

**

IDEA中给Spring项目配置aop后报错org.springframework.beans.factory.BeanCreationException

**

问题描述

在idea上有一个Spring的web项目,通过在idea上配置本地tomcat进行部署,项目之前是正常的。今天在spring-config.xml文件中添加了一个自定义的aop的配置,如下图。
aop配置
启动tomcat,页面报错如下:
在这里插入图片描述

后台报错如下
在这里插入图片描述

开始解决问题

第一步

注意到上面报错信息的最后一个嵌套错误nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint

百度可知,错误原因在于我们项目中缺少aop切面表达式的解析工具,在网上找到aspectjrt.jar、aspectjweaver.jar两个文件。
下载

在这里插入图片描述
引入
在这里插入图片描述
重启tomcat,依然报错,继续解决问题

第二步

可能细心的同学已经注意到了
在这里插入图片描述
这两个jar包是项目运行需要的,compile明显不行,修改为provided。(记得点Apply*****************)
在这里插入图片描述
重启tomcat,依然报错,继续解决问题

第三步

什么原因?
找到生成的war包
在这里插入图片描述
我们发现我们需要添加的两个jar包还是没有进来。
为啥?啥原因?

我们要想想war包是哪里来的?
IDEA的war包,是在Project Structure ->Artifacts这个地方进行描述的。

在这里插入图片描述

找到war包的下的lib文件夹,展开,发现果然没有我们的jar包

在这里插入图片描述

问题找到了

第四步

既然idea没有自动加进来,那我们就自己手动添加呗。

1.找到Libraries,点击加号,进行添加。
在这里插入图片描述
2.jar包添加完成如图。(记得点Apply*****************)
在这里插入图片描述
3.回到Artifacts,选中lib文件夹,右击选择Add Copy of -->Libraries Files,进行添加,结果如图:

在这里插入图片描述
记得再次点Apply*****************)

4。重启tomcat
页面显示正常,后台无报错。
找到war包,可以看到加入的两个jar包
在这里插入图片描述

补充一点

我们再次回到Modules–>dependencies处
在这里插入图片描述
发现多出了两个jar包的引用(如果没有可以点击加号添加)
原来的两个jar包是直接引入具体模块,后面这两个jar包是先引入整体项目中,再引入模块。
为了看起来整齐,我们删除原来的直接引入的jar包,并将通过项目引入的jar包范围改为Provided.(重要的事情,再次提醒,记得点Apply*****************)
在这里插入图片描述

通过整个过程,我们发现先引入项目,再引入模块,明显更方便。idea添加jar包的信息可以查看下面的文章。

idea添加jar包的三种方式

个人原创,有错误、不足之处,请各位多多指正。


版权声明:本文为m0_37611190原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。