在虚函数里面使用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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据