[英]Spring, abstract class and annotations
I've got a pretty simple abstract class 我有一个非常简单的抽象类
public abstract class AbstractServiceActions {
@Autowired
protected DatabaseModel dbModel;
protected User user;
protected boolean complete;
protected String serviceResult;
public AbstractServiceActions(User user) {
this.user = user;
this.serviceResult = "";
}
public abstract String doAction();
}
Now you can see, I'm trying to autowire the DatabaseModel. 现在您可以看到,我正在尝试自动装配DatabaseModel。 But in my extended class I only recieve null for the dbModel. 但在我的扩展类中,我只接受dbModel的null。
@Component
public class CreateDatabaseAction extends AbstractServiceActions {
....
}
Question: Am I trying something impossible here? 问题:我在这里尝试一些不可能的事吗?
Your setup seems fine. 你的设置似乎很好。 The reason perhaps lies elsewhere. 原因可能在于其他地方。 Maybe you are instantiating the class with new CreateDatabaseAction()
, rather than letting spring do this. 也许您使用new CreateDatabaseAction()
实例化该类,而不是让spring执行此操作。
Use @Autowired
and not @Inject
from javax.inject
. 使用@Autowired
而不是来自javax.inject
@Inject
。
Dependency injection in abstract class only works for spring's @Autowired
. 抽象类中的依赖注入仅适用于spring的@Autowired
。
FYI, I'm using Spring 4.0; 仅供参考,我使用的是Spring 4.0; Java 6 Java 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.