最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis攔截器無法注入spring bean的問題解決

 更新時(shí)間:2022年02月04日 10:34:04   作者:康納醬  
本文主要介紹了mybatis攔截器無法注入spring bean的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

公司要整合rabbitmq與mybatis攔截器做一個(gè)數(shù)據(jù)同步功能。

整合過程中大部分環(huán)節(jié)都沒什么問題,就是遇到了mybatis攔截器

@Intercepts(@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}))
@Component
public class MyBatisInterceptor implements Interceptor

無法通過注解進(jìn)行注入一些持久層的dao對(duì)象,導(dǎo)致dao一直取到空值。

取dao對(duì)象目的是要查詢當(dāng)前代碼的執(zhí)行環(huán)境是生產(chǎn)還是測試環(huán)境。

因?yàn)樯a(chǎn)者代碼不需要在測試環(huán)境執(zhí)行,這個(gè)區(qū)分的數(shù)據(jù)存在數(shù)據(jù)庫里面?!?/p>

最初,我通過@Autowired是行不通的,因?yàn)?/p>

所以我繼續(xù)尋找方法,于是我找到了用ApplicationContext的方式獲取spring容器企圖劍走偏鋒

結(jié)果發(fā)現(xiàn)每一次執(zhí)行ClassPathXmlApplicationContext都會(huì)導(dǎo)致容器重新加載,但是我這個(gè)MyBatisInterceptor帶了@Component也會(huì)跟著重新加載,導(dǎo)致isGrey清空

甚至導(dǎo)致RabbitmqConfig這個(gè)類也跟著重新加載

導(dǎo)致這個(gè)監(jiān)聽容易一直重新加載,斷點(diǎn)一直進(jìn)入,這里有用到messageListener這個(gè)消息監(jiān)聽器也是一個(gè)單例bean對(duì)象,也會(huì)重新加載

所以會(huì)導(dǎo)致測試的時(shí)候出現(xiàn)bug,因?yàn)檫@個(gè)系統(tǒng)環(huán)境信息sysEnvInfo只需要加載一次

所以ApplicationContext這個(gè)方式也是走不通,我不推薦。

思來想去,我發(fā)現(xiàn)  mybatis攔截器  具體實(shí)現(xiàn)邏輯的方法  produceSqlData  里面我用的是  SpringBeanUtils.getBean  方法就能獲取得到數(shù)據(jù),

RabbitTemplate是定義在RabbitmqConfig代碼里的,RabbitmqConfig這個(gè)類是個(gè)@Configuration注解

但是獲取的數(shù)據(jù)是通過@Bean方式獲取的,SpringBeanUtils.getBean無法獲取到sqlSessionFactory

這里面的dao對(duì)象,所以直接

也會(huì)報(bào)錯(cuò),提示sysEnvInfoDao沒有被定義。

所以我思索了下,在@Configuration可以@Autowired成功,那我為何不參考rabbitTemplate一樣把sysEnvInfo也變成一個(gè)bean的單例對(duì)象呢?

于是我將SysEnvInfo如rabbitTemplate一樣配置成了單例bean對(duì)象,通過@Bean注解

在MyBatisInterceptor里面通過SpringBeanUtils.getBean方式獲取,最后實(shí)踐可行,不會(huì)出現(xiàn)重復(fù)加載容器的問題,也能在攔截器中取到spring bean

 到此這篇關(guān)于mybatis攔截器無法注入spring bean的問題解決的文章就介紹到這了,更多相關(guān)mybatis攔截器無法注入spring bean內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宿迁市| 新泰市| 盱眙县| 保定市| 张北县| 斗六市| 桦甸市| 铜川市| 加查县| 安国市| 灌南县| 山东省| 安吉县| 阿勒泰市| 闽侯县| 自贡市| 错那县| 黄龙县| 怀集县| 永平县| 襄城县| 孟州市| 九江县| 罗定市| 陈巴尔虎旗| 昌图县| 宜都市| 嘉定区| 奈曼旗| 全椒县| 宁远县| 齐齐哈尔市| 临猗县| 米林县| 石河子市| 太仆寺旗| 巴林左旗| 涿州市| 潜山县| 新宾| 额济纳旗|