2010-11-16 5 views
1

J'expérimente des intercepteurs de couture. Je j'ai une annotation personnalisée définie comme:Seam Interceptor classe de base abstraite

@Target(TYPE) 
@Retention(RUNTIME) 
@Interceptors(SomeInterceptor.class) 
public @interface MyInterceptAnnotation { } 

et j'ai une superclasse annotée avec @MyInterceptAnnotation

@MyInterceptAnnotation 
MyAbstractSuperClass{...} 

est possible d'avoir toutes les sous-classes dérivées de MyAbstractSuperClass interceptés ?? Cordialement

Répondre

0

Non, je suppose. Vous pouvez essayer ça. Cependant, quelque chose peut être fait au niveau package, en utilisant package-info.java. Ainsi, les classes appartenant à ce paquet particulier seront interceptées. Comme ci-dessous,

package-info.java

@MyInterceptAnnotation 
package my.package.name; 
import my.annotation.package.name.MyInterceptAnnotation; 

Afin de forcer les sous-classes pour définir l'annotation, regardez this thread.

Juste rencontré un related thread, mais c'est environ Spring. Je me demande si nous avons un moyen similaire dans Seam. Vous pouvez essayer de le découvrir.

+0

Comment puis-je activer l'analyse de niveau d'info-paquet? –

+0

@Sergio: Voir l'addenda. –

0

Vous pouvez annoter votre MyInterceptAnnotation avec @Inherited, ce qui entraîne l'interception de toutes les sous-classes de MyAbstractSuperClass.

Questions connexes