gpt4 book ai didi

java - @Asynchronous 在抽象类中工作吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:56:33 31 4
gpt4 key购买 nike

我有一个带有抽象方法的抽象类

@Asynchronous
public abstract void runAsync();

我在 Spring Async not working on controller's abstract super class method 中为 @Async 找到了这个答案

问题是,如果我在实现中覆盖它,这个方法 runAsync 会是异步的吗?还是只在实现时才需要做@Asynchronous注解?

最佳答案

注解默认不继承。仅当注释定义中具有 @Inherited 属性时,注释才会被继承。现在看一下 @Async 注释定义:

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

Async注解没有@Inherited属性,所以不会被子类继承。在这种情况下,您需要在子类覆盖方法中显式指定 @Async 以使其工作。欲了解更多信息,请访问 link .

编辑:javax.ejb.Asynchronous 也没有 @Inherited 属性(docs)

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

因此,在 @Asynchronous 的情况下,使用 @Asynchronous 覆盖方法的行为将与上述相同。

关于java - @Asynchronous 在抽象类中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58264045/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com