通过aop拦截mybatis接口dao

Posted crazy_itman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过aop拦截mybatis接口dao相关的知识,希望对你有一定的参考价值。

最近开发的客服系统遇到了这样一个问题:微信渠道发送消息时如果nickname带有emoji表情,后台则会报消息无法插入数据库的错误,导致微信端一直无法进入人工,错误如下:


经查证,是由于后台在使用mybatis插入数据库时没有对emoji做转换处理,导致无法插入数据库,故而报错


由于mybatis使用的接口的形式跟mysql映射的,刚开始还以为aop无法拦截接口,结果验证,aop是可以拦截mybatis接口(即mybatis只有接口而没有相应的实现类)的,

最终解决方案如下:

1、  新增一个aop切面类,该切面类拦截所有MessageInfoDao的insert(MessageInfomessageInfo)方法,拦截到之后对messageIn

以上是关于通过aop拦截mybatis接口dao的主要内容,如果未能解决你的问题,请参考以下文章

Spring aop 拦截不到Dao

mybatis拦截器

java怎么拦截mapper方法

spring aop (service通过继承)导致无法拦截子类方法

mybatis拦截器使用

mybatis中dao接口与mapper关联的理解