模板方法中,获取具体模板为什么要用工厂模式?而不直接@Autowired

支付回调,要用到模板方法,定义一个父类抽象类,不同子类(银联,微信,支付宝等)实现其方法。而在获取具体回调模板的时候,用到了工厂
但是,子类已经加了@Component,为什么不在Controller层直接@Autowired?而是用了一个工厂方法,根具体bean?据beaId获取图片说明

https://blog.csdn.net/yunpeng456/article/details/81316299

因为工厂方法需要根据你传的参数取判断到底是哪个bean实例化。如果直接用autowire ,abstracPayCallbackTemplate 不知道应该用哪个实例化,因为有多个子类加了@Component