Cómo funciona el @Asynchronous en la clase abstracta?

Jacek Wojtowicz

Tengo una clase abstracta con el método abstracto

@Asynchronous
public abstract void runAsync();

He encontrado esta respuesta para @Asyncla primavera asíncrono que no trabaja en el método de superclase abstracta del controlador

Pregunta es, este método runAsyncsea asíncrona Si anularlo en la ejecución? ¿O tengo que hacer @Asynchronousla anotación sólo en la implementación?

Lo Bera:

Las anotaciones se no se heredan de forma predeterminada . Anotaciones será heredado sólo si tiene @Inheritedpropiedades en la definición de anotación. Ahora mira la @Asyncdefinición anotación:

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Async 

Asyncanotación no tiene las propiedades @Inherited, por lo que no será heredado de subclase. En ese caso, es necesario especificar explícitamente el @Asyncen el método de reemplazo subclase para que funcione. Para obtener más información, visite el enlace .

EDIT: javax.ejb.AsynchronousTambién no tiene @Inheritedpropiedad ( docs )

@Target(value={METHOD,TYPE})
 @Retention(value=RUNTIME)
public @interface Asynchronous

Por lo tanto, en el caso de @Asynchronous, el comportamiento en caso de anulación método con @Asynchronousserá el mismo que se mencionó anteriormente.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=312550&siteId=1
Recomendado
Clasificación