Аннотации не наследуются по умолчанию . Аннотации будут наследоваться только в том случае, если в определении аннотации есть @Inherited
свойства. Теперь рассмотрим определение аннотации @Async
: аннотация
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Async
Async
не имеет свойств @Inherited
, поэтому она не будет наследоваться подклассу. В этом случае вам нужно явно указать @Async
в методе переопределения подкласса, чтобы он работал. Для получения дополнительной информации, пожалуйста, посетите ссылку .
РЕДАКТИРОВАТЬ: javax.ejb.Asynchronous
также не имеет @Inherited
свойство ( документы )
@Target(value={METHOD,TYPE})
@Retention(value=RUNTIME)
public @interface Asynchronous
Таким образом, в случае @Asynchronous
поведение в случае переопределения метода с помощью @Asynchronous
будет таким же, как упомянуто выше.