千家信息网

mybatis拦截器无法注入spring bean怎么解决

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍"mybatis拦截器无法注入spring bean怎么解决",在日常操作中,相信很多人在mybatis拦截器无法注入spring bean怎么解决问题上存在疑惑,小编查阅了各式资料,
千家信息网最后更新 2025年11月09日mybatis拦截器无法注入spring bean怎么解决

这篇文章主要介绍"mybatis拦截器无法注入spring bean怎么解决",在日常操作中,相信很多人在mybatis拦截器无法注入spring bean怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mybatis拦截器无法注入spring bean怎么解决"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

整合过程中大部分环节都没什么问题,就是遇到了mybatis拦截器

@Intercepts(@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}))@Componentpublic 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怎么解决"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

拦截器 对象 数据 方式 方法 环境 学习 代码 容器 注解 跟着 问题 测试 更多 实践 帮助 整合 生产 监听 可行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安徽璞琅互联网科技有限公司 服务器能连接多少socket 山东数据库安全箱销售厂家 端游方舟生存进化服务器多少钱 软件开发基础工程师面试 人们对于网络安全的看法 网络技术专业技术总结 网络安全现状分析与发展趋势 唐山用户管理界面软件开发 瀚高数据库导入sql文件 延安国家网络安全 网络安全工作应急处理预案 2016软件开发 服务器级连 java 数据库 游标 gnss干扰涉及网络安全问题 用c 做数据库界面设计 速达3000数据库连接 网络安全预警管理体系认证申报 国产刀片服务器 互联网科技推动人类的进步 站约层面网络安全是对 松江区品牌软件开发售后服务 软件开发控制成本 华三服务器内存条多少钱一个 知乎微博软件开发商怎么盈利 我的世界我的手艺服务器 网络安全审查办法自哪一天起实施 北京超频服务器供应商家 新华互联网科技学校武汉青山
0