iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis拦截器无法注入springbean的问题解决
  • 963
分享到

mybatis拦截器无法注入springbean的问题解决

2024-04-02 19:04:59 963人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

公司要整合RabbitMQ与mybatis拦截器做一个数据同步功能。 整合过程中大部分环节都没什么问题,就是遇到了mybatis拦截器 @Intercepts(@Signature(

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

整合过程中大部分环节都没什么问题,就是遇到了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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: mybatis拦截器无法注入springbean的问题解决

本文链接: https://www.lsjlt.com/news/138167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis拦截器无法注入springbean的问题解决
    公司要整合rabbitmq与mybatis拦截器做一个数据同步功能。 整合过程中大部分环节都没什么问题,就是遇到了mybatis拦截器 @Intercepts(@Signature(...
    99+
    2022-11-13
  • mybatis拦截器无法注入spring bean怎么解决
    这篇文章主要介绍“mybatis拦截器无法注入spring bean怎么解决”,在日常操作中,相信很多人在mybatis拦截器无法注入spring bean怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-29
  • springboot拦截器无法注入redisTemplate的解决方法
    在工作中我们经常需要做登录拦截验证或者其他拦截认证功能,基于springboot项目下我们很容易想到结合redis做的分布式拦截,把用户登录或者需要验证的信息放到redis里面。但是...
    99+
    2022-11-12
  • 关于SpringBoot拦截器中Bean无法注入的问题
    问题 这两天遇到SpringBoot拦截器中Bean无法注入问题。下面介绍我的思考过程和解决过程: 1.由于其他bean在service,controller层注入一点问题也没有,开...
    99+
    2022-11-12
  • Mybatis拦截器打印sql问题怎么解决
    本篇内容介绍了“Mybatis拦截器打印sql问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.log4j2配置修改关闭log4...
    99+
    2023-07-05
  • 基于springboot拦截器HandlerInterceptor的注入问题
    目录springboot拦截器HandlerInterceptor的注入一、问题描述二、解决策略三、知识总结springboot HandlerInterceptor 拦截器匹配规则...
    99+
    2022-11-12
  • mybatis拦截器及不生效的解决方法
    目录背景:mybatis拦截器怎样做定义一个拦截器定义一个 MybatisInterceptorAutoConfiguration背景: 在一些需求下,使用拦截器会大大简化工作量也更...
    99+
    2023-05-14
    mybatis拦截器 mybatis拦截器不生效
  • 解决window.open()被浏览器拦截的问题
    一、问题描述 最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,虽然在自己的环境可以对页面进行放行,但是对用户来说,不能要求用户都来通过拦截。何况当出现拦截时,很...
    99+
    2022-11-13
  • Struts2拦截器 关于解决登录的问题
    拦截器的工作原理如图 拦截器是由每一个action请求(request)都包装在一系列的拦截器的内部,通过redirectAction再一次发送请求。拦截器可以在Action执行直线做相似的操作也可以在Action执行直后做回收操作。我们可...
    99+
    2023-05-31
    struts2 登录 拦截器
  • SpringBoot解决@Component无法注入其他Bean的问题
    目录SpringBoot@Component无法注入其他Bean一、现象二、解决三、代码如下@Component注解自动注入失效问题SpringBoot @Component无法注入...
    99+
    2022-11-12
  • 如何解决SpringBoot 加入AOP后无法注入的问题
    SpringBoot 开启AOP后 出现无法注入的问题 真是坑的很啊~ 提示错误 org.springframework.beans.factory.NoSuchBeanDefin...
    99+
    2022-11-12
  • 解决mybatis-generator生成器添加类注释方法无效的问题
    遇到的问题! 注:自定义CommentGenerator的都知道 通过实现CommentGenerator接口的一些不足,毕竟只是实现了CommentGenerator接口,在里面的...
    99+
    2022-11-12
  • 在拦截器中读取request参数,解决在controller中无法二次读取的问题
    目录拦截器中读取request参数,在controller中无法二次读取新建类添加过滤器使用拦截器时,controller中不能再次获取body中的参数解决办法1、获取body信息2...
    99+
    2022-11-12
  • springboot项目拦截器重定向循环问题的解决
    目录springboot项目拦截器重定向循环解决办法springboot拦截器无限循环报错springboot项目拦截器重定向循环 本菜鸟很久没写东西了,这回是解决了一个小问题,希望...
    99+
    2022-11-12
  • 解决SpringBoot引用别的模块无法注入的问题
    目录引用别的模块无法注入的问题问题描述解决方法多模块项目中无法注入其他模块的springbean引用别的模块无法注入的问题 前段时间尝试着利用空闲时间搭建了一个IIM消息通信系统,目...
    99+
    2022-11-13
  • mybatis使用${}时sql注入的问题怎么解决
    这篇文章给大家介绍mybatis使用${}时sql注入的问题怎么解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mybatis使用${}时sql注入的问题最近在上线项目的时候,代码审查没有通过,提示有sql注入的风险...
    99+
    2023-06-22
  • vuecli3打包后出现跨域问题,前端配置拦截器无效的解决
    目录打包后跨域问题,前端配置拦截器无效问题解决方案vue3处理跨域问题在项目根目录新建vue.config.js输入如用到的是vite.config.js打包后跨域问题,前端配置拦截...
    99+
    2022-11-13
  • 如何解决mybatis-generator生成器添加类注释方法无效的问题
    本篇内容主要讲解“如何解决mybatis-generator生成器添加类注释方法无效的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决mybatis-generator生成器添加类注释...
    99+
    2023-06-20
  • 如何解决Spring对静态变量无法注入的问题
    这篇文章主要讲解了“如何解决Spring对静态变量无法注入的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Spring对静态变量无法注入的问题”吧!Spring对静态变量无法注入...
    99+
    2023-06-20
  • 解决struts2拦截器修改request的parameters参数失败的问题
    目录struts2拦截器修改request的parameters参数失败修改指定拦截器的参数(Struts2)struts2 拦截器修改request的parameters参数失败 ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作