Ответ 1
Ваша настройка кажется прекрасной. Причина, возможно, лежит где-то в другом месте. Возможно, вы создаете класс с помощью new CreateDatabaseAction()
, вместо того чтобы позволить spring сделать это.
У меня довольно простой абстрактный класс
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();
}
Теперь вы можете видеть, я пытаюсь autowire DatabaseModel. Но в моем расширенном классе я получаю null для dbModel.
@Component
public class CreateDatabaseAction extends AbstractServiceActions {
....
}
Вопрос: Я пытаюсь сделать что-то невозможное здесь?
Ваша настройка кажется прекрасной. Причина, возможно, лежит где-то в другом месте. Возможно, вы создаете класс с помощью new CreateDatabaseAction()
, вместо того чтобы позволить spring сделать это.
Используйте @Autowired
, а не @Inject
из javax.inject
.
Включение зависимостей в абстрактном классе работает только для spring @Autowired
.
FYI, я использую spring 4.0; Java 6