1
我有一个超类,它需要子类提供超类运行的接口的实现。Java Spring - 将参数注入带注解的超类
我们使用Spring和DI,所以我们不能只用new创建实现。
子类将知道只有在Spring初始化后才能提供哪个bean,因此使用超级构造函数将不起作用。
我也不想在子类中使用q @PostConstruct
安装方法,因为这要求子类开发人员知道如何设置超类。
我想超要求子类提供参考实现bean,以便它可以安装它的成员:
超类使用UrlBuilder接口:
public class JsonConnection{
private UrlBuilder urlBuilder;
}
的子类通过依赖注入提供实现(UrlBuilderFacebook
)。
@Component
public class FacebookJsonConnection extends JsonConnection {
@Inject
private UrlBuilder urlBuilderFacebook;
}
超类可以是抽象的或组件,它没关系。重要的是,我希望能够创建轻量级的子类,以便在需要时提供UrlBuilder
到超类和@Inject
。
@Inject
private JsonConnection facebookJsonConnection;
或
@Inject
private JsonConnection redmineJsonConnection;
我也不想超了解其子类是用任何东西。