mybatis 拦截器以下异常的解决方法### Error opening session. Cause: org.apache.ibatis.plugin.PluginException: No @Intercepts annotation was found in interceptor com.cmi.jego.micro.msgreceive.aspect.mybatis.UpdateInterceptor$$EnhancerBySpringCGLIB$$2d6daa4b
时间: 2023-09-26 16:06:44 浏览: 227
这个异常通常发生在 MyBatis 拦截器中,可能是因为在拦截器类中没有正确地使用 MyBatis 提供的 `@Intercepts` 注解。这个注解用于标识这是一个 MyBatis 拦截器,需要拦截哪些 SQL 执行语句(如查询、更新等)。如果没有使用这个注解,MyBatis 就无法识别这个类是一个拦截器类,就会抛出这个异常。
要解决这个问题,你需要确保在拦截器类中使用了 `@Intercepts` 注解,并正确地配置了需要拦截的 SQL 执行语句。例如:
```java
@Intercepts({
@Signature(type = StatementHandler.class, method = "update", args = {Statement.class})
})
public class UpdateInterceptor implements Interceptor {
// your interceptor code here
}
```
在这个例子中,我们使用 `@Intercepts` 注解指定了拦截 `StatementHandler` 类的 `update` 方法,并且传入了一个 `Statement` 参数。
如果你已经正确地使用了 `@Intercepts` 注解,但仍然遇到这个异常,那么可能是因为你的拦截器类没有被正确地扫描和加载。你可以检查一下你的 MyBatis 配置文件中是否正确地配置了拦截器,例如:
```xml
<plugins>
<plugin interceptor="com.cmi.jego.micro.msgreceive.aspect.mybatis.UpdateInterceptor"/>
</plugins>
```
这个配置将会把 `com.cmi.jego.micro.msgreceive.aspect.mybatis.UpdateInterceptor` 拦截器添加到 MyBatis 的插件列表中,确保它会被正确地加载和执行。
希望这些信息能帮助你解决问题。
阅读全文