@ Ресурсная аннотация, не внедряющая подкласс - PullRequest
1 голос
/ 04 марта 2010

Аннотация @Resource для службы не внедряет подкласс, если я явно не включу аннотацию @Component в подкласс. Есть ли способ сделать так, чтобы подкласс был «связан» с родительским @Resource, не требуя аннотаций в каждом дочернем классе? Я обнаружил это, создав подкласс и не добавив аннотацию @Component. Я быстро столкнулся с ужасным NPE.

1 Ответ

1 голос
/ 04 марта 2010

@Component аннотация работает только для класса, в котором она объявлена, а не для его подклассов (я думаю, из соображений производительности: в противном случае потребуется обход всех предков для каждого сканируемого класса).

В качестве обходного пути вы можете объявить фильтр assignable для родительского класса в <context:component-scan>:

<context:component-scan base-package = "...">
    <context:include-filter type = "assignable" expression = "... your parent class ..." />
</context:component-scan>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...