这里博主遇到是spring中引入依赖包,造成版本冲突的问题。
方法1:
我在使用spring框架中的aop时,报错,上面的意思就是说,你的bean类,无法正常注入到容器中,这里最重要的就是你引入的依赖包,版本不一致所导致的问题!!!
举例子:
在pom.xml引入的依赖包:(注意看版本号)
<dependencies>
<!-- 引入ioc的beans基本包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--引入ioc的core基本包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--引入ioc的context基本包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--引入ioc的expression的基本包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--下面引入关于spring- aop的包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.3.8</version>
</dependency>
在用spring-aop时,要引入spring-aop 和 spring-aspects这两个jar包,但是与前面ioc引入的jar包的版本号不一致,所以导致了冲突,类的注入异常。这里的spring的版本号是5.2.9所以和5.3.8的jar包冲突。
如何查询Spring的版本号:
String version = SpringVersion.getVersion();
System.out.println(version);
解决办法:::所以只需要将引入的依赖包改为版本号一致的就行,都改成5.3.8
方法2:
因为Spring-AOP基于的是aspectj框架:也可以引入一下两个包,不会造成版本冲突的问题
<!--引入aspectjrt包的依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.6</version>
</dependency>
<!--aspectjweaver包的依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>