如何控制从某个类派生的所有类必须被声明为@Component
(这意味着作为一个Spring bean)? Spring是否提供了通过父类控制它的机制?
答案 0 :(得分:1)
Workarround:如果父类的子类没有@Component
注释,您可以使用[AspectJ来声明警告] [1](或错误)。
(我不是AspectJ专家,所以我不能写你所需的AJP声明。但是我几年前做过类似的事情,所以我很确定这种方法有用。)
粗略草图,可能包含一些语法错误:
pointcut requiresComponentAnnotation(): yourParentClass+
&& !get(@Component)
declare warning : requiresComponentAnnotation() :
"expect: @Type(type = \"org.springframework.stereotyp.Component\")";