在虚函数里面使用spring的DI
参考:https://medium.com/@citizenACLV/use-springs-dependency-injection-in-java-abstract-class-2573c1b4c0d1
实现的子类使用@Component
Factory 使用@Service, 得到实例的时候,使用@Autowired, 而不使用new
这个是关键,不然,虚基类的autowired会一直null
spring的autowired,默认是singleton,即autowired得到的都是同一个对象,
如果要每次都create new,则使用ObjectFactory,getObject每次会创建新的对象。
public class SingletonObjectFactoryBean {
@Autowired
private ObjectFactory<PrototypeBean> prototypeBeanObjectFactory;
public PrototypeBean getPrototypeInstance() {
return prototypeBeanObjectFactory.getObject();
}
}
参考:https://www.baeldung.com/spring-inject-prototype-bean-into-singleton
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。