我已经使用@Async
注释了一个方法,希望它能以异步方式运行。但是,当我从线程打印出线程名称时,它仍然是'main',就像我在没有@Async
注释的情况下运行它一样。它也会缓慢地返回(700ms),这让我觉得它根本不会异步运行。
bean使用@Component
注释,正在使用@Autowired
成功连接其依赖项。我正在用
ApplicationContext context = new AnnotationConfigApplicationContext(MyClassConfig.class);
MyClass myClass = context.getBean(MyClass.class);
我有什么问题吗?
非常感谢。
编辑:添加更多代码
config类看起来像这样:
@Configuration
@ComponentScan
@EnableAsync
public class MyClassConfig {
@Bean
public MyClass myClass(){
return new MyClass();
}
}
异步方法是:
@Async
public void doSth(){
...
}
另一个想法是,它必须返回未来吗?我不关心结果 - 它正在评估它的副作用 - 但我还读到它应该返回一个未来?
调用doSth()的代码只是
doSth()
从类中的另一个方法调用。