强制派生类将自己声明为Spring bean

时间:2017-01-02 15:02:18

标签: spring spring-annotations

如何控制从某个类派生的所有类必须被声明为@Component(这意味着作为一个Spring bean)? Spring是否提供了通过父类控制它的机制?

1 个答案:

答案 0 :(得分:1)

Workarround:如果父类的子类没有@Component注释,您可以使用[AspectJ来声明警告] [1](或错误)。

(我不是AspectJ专家,所以我不能写你所需的AJP声明。但是我几年前做过类似的事情,所以我很确定这种方法有用。)

粗略草图,可能包含一些语法错误:

pointcut requiresComponentAnnotation(): yourParentClass+ 
         && !get(@Component)
declare warning : requiresComponentAnnotation() : 
        "expect: @Type(type = \"org.springframework.stereotyp.Component\")";