通过aop拦截mybatis接口dao
来源:互联网 发布:手机蓝牙串口软件 编辑:程序博客网 时间:2024/06/07 08:46
最近开发的客服系统遇到了这样一个问题:微信渠道发送消息时如果nickname带有emoji表情,后台则会报消息无法插入数据库的错误,导致微信端一直无法进入人工,错误如下:
经查证,是由于后台在使用mybatis插入数据库时没有对emoji做转换处理,导致无法插入数据库,故而报错
由于mybatis使用的接口的形式跟mysql映射的,刚开始还以为aop无法拦截接口,结果验证,aop是可以拦截mybatis接口(即mybatis只有接口而没有相应的实现类)的,
最终解决方案如下:
1、 新增一个aop切面类,该切面类拦截所有MessageInfoDao的insert(MessageInfomessageInfo)方法,拦截到之后对messageInfo的nickname属性进行encode处理
该class文件要分别放在mgw和imr的classes/com/bill99下面
2、
修改mgw和imr的spring配置文件,其中:
在mgw的spring.xml中新增如下配置片段:
在imr的spring.xml中新增如下配置片段:
总结:该方案无代码侵入性,是我任务最好的方案。
其他的方案还有,反编译相关class,找到每一处出错的地方进行手动encode。
1 0
- 通过aop拦截mybatis接口dao
- mybatis泛型DAO接口
- mybatis 泛型DAO接口设计
- 通过Spring AOP 拦截 SQL
- MyBatis(5)MyBatis DAO接口开发
- 得到DAO接口的拦截器写法
- mybatis泛型DAO接口的设计
- mybatis泛型DAO接口的设计
- mybatis整合spring的 泛型DAO接口
- mybatis整合spring的 泛型DAO接口
- mybatis整合spring的 泛型DAO接口
- mybatis整合spring的 泛型DAO接口
- mybatis整合spring的 泛型DAO接口
- SpringMVC+MyBatis自动生成Dao接口
- mybatis的dao接口实现小结
- Mybatis-Dao层开发之Mapper接口
- DAO层接口定义多个入参(Mybatis)
- 通过cglib实现AOP 拦截器
- 用popen实现my_system,替代system
- python format使用
- 关于企业应用架构中前置机的作用
- SqlServer 2005/2008 置疑解决
- AAC编码的几个配置参数
- 通过aop拦截mybatis接口dao
- Php:时间日期计算
- liferay Portal CE6.2 新开发portlet如何设置权限(Security and Permission resources )
- 有关swift的最新技术
- 设置Eclipse中的tab键为4个空格的完整方法
- BZOJ 1055 DP
- 51nod 1503 && codeforces570e Pig and Palindromes
- android 正则验证手机号是否正确
- poj1151 Atlantis