问题背景
在开发业务系统过程中,需要使用工作流,因为可能会使用第三方工作流和自己的工作流,因此在业务系统SERVICE层使用了简单工厂调用工作流(可以方便工作流来回切换),但是由于对Spring了解不透彻,在业务系统SERVICE层使用了new创建工作流实例,在new出来的工作流实例中标注Autowired注解的类无法注入。
解决思路
- spring无法扫描到上面说的new创建的工作流类
- 配置文件有问题,导致上面说的new创建的工作流类在任何地方都不能通过Autowired注入
- 自己写的程序某个地方有问题
解决办法
- 一步一步进行测试缩小范围,最后找到是自己在业务系统SERVICE层使用了new创建工作流实例,new的对象的依赖没有办法被spring管理,以后的实例也同样没有办法注入。
- 将new的地方添加@Autowired和@Qualifier("name")注解,同时在原来要new的类上添加@Component("name")注解。