gpt4 book ai didi

java - 为来自父类(super class)的字段限定 Spring 依赖注入(inject)

转载 作者:行者123 更新时间:2023-11-29 03:13:47 26 4
gpt4 key购买 nike

如何在实现类中注入(inject)我的 webServiceTemplate

我的例子:

public abstract class AbstractConnector {

protected WebServiceTemplate webServiceTemplate;

protected Object send(Object message) {
return webServiceTemplate.marshalSendAndReceive();

}

在我的具体实现中,我想像这样设置我的 webServiceTemplate

public class MyConnector extends AbstractConnector {

@Resource(name = "myWebService")
private WebServiceTemplate webServiceTemplate;
}

但这不行。如果我调用 send(),那么我将得到 NPE,因为 webServiceTemplate 为空。如何在 send() 方法中访问的实现中设置此依赖项?

最佳答案

最好尽可能避免字段注入(inject),这就是一个例子。构造函数注入(inject)使这变得简单:

public abstract class AbstractConnector {
private final WebServiceTemplate webServiceTemplate;

protected AbstractConnector(WebServiceTemplate webServiceTemplate) {
this.webServiceTemplate = webServiceTemplate;
}
}

@Service
public class MyConnector extends AbstractConnector {

@Inject // or @Autowired
public MyConnector(@Qualifier("myWebService") WebServiceTemplate webServiceTemplate) {
super(webServiceTemplate);
}
}

关于java - 为来自父类(super class)的字段限定 Spring 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com