Абстрактный базовый класс Seam Interceptor

Я экспериментирую с перехватчиками швов. У меня есть пользовательская аннотация, определенная как:

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

и у меня есть суперкласс, аннотированный @MyInterceptAnnotation

@MyInterceptAnnotation
MyAbstractSuperClass{...}

возможно ли перехватить все подклассы, производные от MyAbstractSuperClass?? С наилучшими пожеланиями


person vincenzo strawberry    schedule 16.11.2010    source источник


Ответы (2)


Нет, я полагаю. Вы можете попробовать это. Однако кое-что можно сделать и на package уровне, используя package-info.java. Таким образом, классы, принадлежащие этому конкретному пакету, будут перехвачены. Как показано ниже,

package-info.java

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

Чтобы заставить подклассы определять аннотацию, посмотрите эта тема.

Только что наткнулся на связанный поток, но это около Spring. Интересно, есть ли у нас похожий способ в Seam. Вы можете попробовать узнать.

person Adeel Ansari    schedule 16.11.2010
comment
Как я могу включить сканирование на уровне информации о пакете? - person vincenzo strawberry; 16.11.2010

Вы можете аннотировать свою MyInterceptAnnotation с помощью @Inherited, что приводит к перехвату всех подклассов MyAbstractSuperClass.

person tahagh    schedule 22.02.2012