一个注解@Component引发的血案

首先,我们这个是用springboot架构来实现的业务

这是项目包结构和配置文件结构这是定时需要执行的任务
这是我执行PromoCodeCMCJob这个定时器的报错信息

问题是这样的:加了两个MQ之后才报错的这个信息,当我执行启动PromoCodeCMCJob定时任务的时候就报错,报错信息如上,这个时候我两个MQ任务的定时任务都加了@Component和 @Autowired private MQProduceFactory gpRepayProducer 注入,此时就报错了,刚开始的时候我只是 @Autowired private MQProduceFactory gpRepayProducer 注释掉然后再启动PromoCodeCMCJob这个定时任务,什么,居然没问题,这个时候完全能执启动,所以此时我就断定是这个MQProduceFactory注入原因引起的,但是我有MQ队列,这个是MQ的生产者,注释掉就不能忘MQ生产消息了,所以注释掉这个是不行的,然后我就想其它办法去解决,像重新分包,想了各种解决办法都没有解决,始终没有想到去掉@Component这个注解,这个注解翻译是组件的意思,是把当前类注入到IOC容器中,直到我研究了半天左右的时候,一直没有想到点上,浪费了很多时间,快下班了的时候让我想到了,既然被在IOC容器中了,那我不把他注入进去不就完了,这是我就试着把@Component注解去掉,然后在配置文件中加入bean,变成了这样
配置文件中不加这个bean的话启动定时任务也是会报错的,这样的话我就把需要的MQProduceFactory这个放入到bean里面了,而没有在IOC了,最后就完美的解决了,有MQ三个定时任务都能运行了!

思考:@Component注解是IOC容器层面的,是个很大的容器,能包容很多,而bean只是一个工厂,IOC容器能包含着bean工厂,IOC容器中可以有很多bean工厂,但是bean里面只有一个,一般都是通过bean标签的id来标识的,所以在项目中没有最完美的方案,只有更好的方案,只有把架构,方案都用对了,才能更好去解决业务需求的问题

一个@Component注解引发的血案相关推荐

  1. 一个“Spring轮子”引发的“血案”(4)

    事件的升级,国产技术社区中所存现出来的浮躁.世态炎凉,在我的一篇<80前>一文,终于引爆了出来. <80前>一文是一个长篇,是我吃这么20多年饭,读了不少书的一些所思.所误.所 ...

  2. 一个由正则表达式引发的血案

    阿里妹导读:周末快到了,今天为大家送上一篇很有意思的小文章,具有提神醒脑之功效.作者是来自阿里巴巴LAZADA产品技术部的申徒童鞋. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中 ...

  3. 转:一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...

  4. 一个Sqrt函数引发的血案

    我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然 ...

  5. 一个由copyBean引发的血案

    一次开发中使用轮子Bean互转突然发生了问题 Paper paper = new Paper(); paper.setdLevel(1); PaperDTO dto = new PaperDTO(); ...

  6. 一个数字键盘引发的血案——移动端H5输入框、光标、数字键盘全假套件实现...

    https://juejin.im/post/5a44c5eef265da432d2868f6 为啥要写假键盘? 还是输入框.光标全假的假键盘? 手机自带的不用非得写个假的,吃饱没事干吧? 装逼?炫技 ...

  7. 一个缓存穿透引发的血案

    2010年9月23日,Facebook遭遇了迄今为止最严重的宕机事件之一,网站关闭了4个小时.为恢复工作,不得不让FB下线,影响了10亿用户. 在事后的故障报告中提到: 今天,我们修改了一个错误的配置 ...

  8. 一个时间字段引发的血案

    hi ,大家好,我是三天打鱼,两天晒网的小六六 前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger 种一棵树最好 ...

  9. 一个变量类型引发的血案

    想要用WebGL实现一个响应鼠标画点的程序.无奈一直出现: 比对了2天,逐字校对,最终找到了原因: gl_PointSize是浮点数....浮点...浮...扑街!! gl_PointSize = 1 ...

最新文章

  1. 如何修改VC6的项目名
  2. 360 mysql账户_MYSQL用户管理
  3. openssl不是内部或外部命令_OpenSSL新架构蓝图
  4. Samba Linux 和windows 共享
  5. ECStore在Win环境下如何运行CMD命令
  6. 手机自带计算机的功能,手机上的这3个小功能,比电脑方便好用,你知道吗?...
  7. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_3 Mybatis中编写dao实现类的使用-修改删除等其他操作...
  8. leach算法的实现过程_LEACH-REC算法的研究及实现
  9. 高校毕业生就业信息管理系统的设计与实现(Spring + Spring MVC +Hibernate)
  10. bio-linux软件包教程,biolinux包含软件
  11. Win10系统中查看是否开启虚拟化
  12. 海军某训练基地落户上海崇明岛 建设用地2500亩
  13. ipad html 自定义裁剪图片大小,如何在iPhone或iPad上裁剪和编辑照片 | MOS86
  14. nividia-smi命令不显示占用显卡的进程
  15. Chaosblade 混动工程之网络延迟实践
  16. 代码随想录第四天 leetcode 24、19、206
  17. 物联网项目开发实战案例
  18. 宠物店 java 报告_宠物店社会实践报告通用范文
  19. 气象站可以用计算机分析什么数据,多功能气象站有什么用
  20. 产品创新与研发管理的八大典型问题

热门文章

  1. 软件详细设计说明书 模板
  2. Express的使用方法
  3. Ubuntu虚拟机无法上网
  4. c语言实现五子棋(真人对战+人机大战)
  5. 一种被称牛屎的“软封装”——COB
  6. D. Playoff edu140 div2
  7. Configuration servicename.MapServer can not be started.
  8. 油画篇—颜色和空间关系直接影响作品效果~
  9. NYOJ 91 阶乘之和
  10. ThinkPhp5开发实战1:搭建环境配置TP5框架(持续更新收藏关注)