简体   繁体   English

Spring,抽象类和注释

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM