gpt4 book ai didi

java - Spring 的 @Asyn 注释

转载 作者:行者123 更新时间:2023-12-02 12:57:23 25 4
gpt4 key购买 nike

我正在尝试使用spring提供的@Async注释。浏览了一些博客,我发现使用它有以下限制:

  1. 它必须仅应用于公共(public)方法
  2. 自调用 - 从同一个类中调用异步方法 - 不起作用

我有一个从同一个类调用的方法,我想标记@Async。有没有办法从同一个类中实现它?

最佳答案

在 Spring v4.3+ 中,您可以使用自注入(inject),并在自注入(inject)引用上调用方法。

例如:

@Component
public class SomeClass {
@Autowired
private SomeClass selfInjected;

public void someMethod() {
selfInjected.someOtherMethod();
}

@Async
public void someOtherMethod(){
...;
}
}

更新为 OP 使用 4.3 之前的版本:

这对你有用。

@Component
public class SomeClass {

@Autowired
private ApplicationContext applicationContext;

private SomeClass selfInjected;

@PostConstruct
private void init() {
selfInjected = applicationContext.getBean(SomeClass.class);
}
}

或者

另一个选项是提取方法来分离类并 Autowiring 它。在执行上述方法之前,我个人会探索这个选项。

关于java - Spring 的 @Asyn 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384848/

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