服务的@Resource注释不是注入子类,除非我在子类中显式包含@Component注释。有没有办法请求子类与父@Resource“连线”而不需要在每个子类中进行注释?我发现这种方式的方法是创建一个子类并且不包含@Component注释。我很快就遇到了可怕的NPE。
答案 0 :(得分:1)
@Component
注释仅适用于声明它的类,而不适用于其子类(出于性能原因,我猜:否则需要遍历扫描的每个类的所有祖先)。
作为解决方法,您可以在assignable
中为您的父类声明<context:component-scan>
过滤器:
<context:component-scan base-package = "...">
<context:include-filter type = "assignable" expression = "... your parent class ..." />
</context:component-scan>