我有一個(gè)帶有抽象方法的抽象類@Asynchronous
public abstract void runAsync();我@Async在 Spring Async not work oncontroller's Abstract super class method中找到了這個(gè)答案問(wèn)題是,runAsync如果我在實(shí)現(xiàn)中重寫(xiě)這個(gè)方法,它會(huì)是異步的嗎?或者我@Asynchronous只需要在實(shí)現(xiàn)時(shí)進(jìn)行注釋?
1 回答

元芳怎么了
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
默認(rèn)情況下,注釋不會(huì)被繼承。@Inherited僅當(dāng)注釋在注釋定義中具有屬性時(shí),注釋才會(huì)被繼承?,F(xiàn)在看一下@Async注釋定義:
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Async?
Async
注解沒(méi)有屬性?@Inherited
,因此不會(huì)被子類繼承。在這種情況下,您需要@Async
在子類重寫(xiě)方法中顯式指定以使其起作用。
編輯:javax.ejb.Asynchronous
也沒(méi)有@Inherited
屬性
@Target(value={METHOD,TYPE})
?@Retention(value=RUNTIME)
public @interface Asynchronous
因此,在 的情況下@Asynchronous,方法重寫(xiě)情況下的行為@Asynchronous將與上面提到的相同。
添加回答
舉報(bào)
0/150
提交
取消