公司要整合rabbitmq与mybatis拦截器做一个数据同步功能。

整合过程中大部分环节都没什么问题,就是遇到了mybatis拦截器
@Intercepts(@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}))
@Component
public class MyBatisInterceptor implements Interceptor
无法通过注解进行注入一些持久层的dao对象,导致dao一直取到空值。
取dao对象目的是要查询当前代码的执行环境是生产还是测试环境。
因为生产者代码不需要在测试环境执行,这个区分的数据存在数据库里面。
最初,我通过@Autowired是行不通的,因为
所以我继续寻找方法,于是我找到了用ApplicationContext的方式获取spring容器企图剑走偏锋
结果发现每一次执行ClassPathXmlApplicationContext都会导致容器重新加载,但是我这个MyBatisInterceptor带了@Component也会跟着重新加载,导致isGrey清空
甚至导致RabbitmqConfig这个类也跟着重新加载
导致这个监听容易一直重新加载,断点一直进入,这里有用到messageListener这个消息监听器也是一个单例bean对象,也会重新加载
所以会导致测试的时候出现bug,因为这个系统环境信息sysEnvInfo只需要加载一次
所以ApplicationContext这个方式也是走不通,我不推荐。
思来想去,我发现 mybatis拦截器 具体实现逻辑的方法 produceSqlData 里面我用的是 SpringBeanUtils.getBean 方法就能获取得到数据,
RabbitTemplate是定义在RabbitmqConfig代码里的,RabbitmqConfig这个类是个@Configuration注解
但是获取的数据是通过@Bean方式获取的,SpringBeanUtils.getBean无法获取到sqlSessionFactory
这里面的dao对象,所以直接
也会报错,提示sysEnvInfoDao没有被定义。
所以我思索了下,在@Configuration可以@Autowired成功,那我为何不参考rabbitTemplate一样把sysEnvInfo也变成一个bean的单例对象呢?
于是我将SysEnvInfo如rabbitTemplate一样配置成了单例bean对象,通过@Bean注解
在MyBatisInterceptor里面通过SpringBeanUtils.getBean方式获取,最后实践可行,不会出现重复加载容器的问题,也能在拦截器中取到spring bean
到此这篇关于mybatis拦截器无法注入spring bean的问题解决的文章就介绍到这了,更多相关mybatis拦截器无法注入spring bean内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关推荐:
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
ChatGPT对于大数据发展的帮助:赋能行业变革,推动智能化未来,ai写作真的好吗
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
AI工具汇总网站,让科技为您的工作加速
SEO重要性与企业互联网发展的必由之路,互联网营销推广平台设计
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
ChatGPT目前,我无法查看或打开附件,但我依然能为你提供全面的帮助,苹果ai谷歌ai
seo要懂些什么软件,seo常用软件 ,ai写作网站网址大全
为什么要seo排名,为什么要做seo推广 ,AI写作开启创意新世界
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
ChatPartner无法连接网络?解决方案,让你的聊天体验更顺畅!,如何用ai给自己写作文
怎么用AI写文章:高效创作的秘诀
在线AI文章生成:智能写作的无限可能
颠覆写作方式:免费的AI续写软件助你轻松创作
GPT-3模型下载:开启智能时代的无限可能,ai走入
seo给你什么帮助,seo的利与弊 ,ai 大厨
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
SEO领先-如何借助SEO技术让您的网站脱颖而出,seo是黑客吗
Chato1免费么?揭开这款AI聊天机器人的神秘面纱,交个朋友ai写作
自动AI写文章:轻松创作时代的全新利器
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
SEO优化做什么的?揭秘SEO优化的核心价值与实战应用,ai做金色
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
什么是seo方法,何为seo ,ai写作神器源码是什么
怎么用AI生成一篇文章?高效创作指南全揭秘!
seo用什么论坛引流,seo引流方法 ,ai写作续写神器
AI上的文章属于原创吗?人工智能创作内容的归属问题
seo需要买什么,seo需要考虑什么 ,ai做表头
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点
丹东seo是什么怎么选,丹东spr ,黑发ai图
seo都有什么意思,seo 啥意思 ,ai园林
SEO快速优化技术:助力网站流量暴增,轻松登顶搜索引擎,铜陵ai全网通推广软件
ChatGPT无法访问原因分析及解决方案,斑马ai报道
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
软件AI:颠覆未来的智能革命
SEO基础知识解析:如何提升网站排名,助力企业成长,毕节企业建设网站
为什么“蜘蛛弛查询”能成为提升网站排名的秘密武器?,惠州网站推广v1戈seo24
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
AI文章精简-高效提炼与优化你的内容创作,ai quid
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
SEO但是,这些常见误区你真的知道吗?,凤岗网站建设开发