洞察金融行业需要转型,如何利用鸿蒙app开发提升运营效率
1117
2022-12-03
Spring @Async无法实现异步的解决方案
目录Spring @Async无法实现异步问题原因解决办法@Async不起作用1.xml头文件必须配置标记红色部分2.配置任务和线程池3.配置spring依赖的jar(不介绍这个了)4.在你需要异步调用的方法上使用@Async注解5.但是你可能遇到@Async不起作用的时候6.如果你遇到上述问题
Spring @Async无法实现异步
问题原因
项目中存在2个配置文件:springMVC.xml和beanDefines.xml,它们都配置了
在beanDefines.xml还配置了
从启动日志中发现,spring先加载的是beanDefines.xml,后加载的是springMVC.xml。
由于springMVC.xml的context:component-scan覆盖了beanDefines.xml的配置,而
导致beanDefines.xml配置的
解决办法
1、删除beanDefines.xml的
2、springMVC.xml添加配置
@Async不起作用
首先介绍一下如何@Async注解,
1.xml头文件必须配置标记红色部分
2.配置任务和线程池
expression="org.springframework.stereotype.Controller" /> 3.配置spring依赖的jar(不介绍这个了) 4.在你需要异步调用的方法上使用@Async注解 5.但是你可能遇到@Async不起作用的时候 我就遇到了,我的问题是容器启动加载了如下两个xml文件http:// springmvc.xml文件仅仅配置扫描注解,applicationContext.xml配置了任务和线程池和扫描注解,先加载了applicationContext.xml,后加载了springMvc.xml。 applicationContext.xml为扫描到的类加上@Async的作用(任务和线程池的配置依赖于扫描到的类),然后springMvc加载后的bean覆盖了applicationContext的bean,覆盖掉了@Async的作用,因为springmvc没有配置任务和线程池, 导致@Async没有起到作用。 6.如果你遇到上述问题 检查一下加载的xml文件是否存在覆盖的问题。
expression="org.springframework.stereotype.Controller" />
3.配置spring依赖的jar(不介绍这个了)
4.在你需要异步调用的方法上使用@Async注解
5.但是你可能遇到@Async不起作用的时候
我就遇到了,我的问题是容器启动加载了如下两个xml文件http://
springmvc.xml文件仅仅配置扫描注解,applicationContext.xml配置了任务和线程池和扫描注解,先加载了applicationContext.xml,后加载了springMvc.xml。
applicationContext.xml为扫描到的类加上@Async的作用(任务和线程池的配置依赖于扫描到的类),然后springMvc加载后的bean覆盖了applicationContext的bean,覆盖掉了@Async的作用,因为springmvc没有配置任务和线程池,
导致@Async没有起到作用。
6.如果你遇到上述问题
检查一下加载的xml文件是否存在覆盖的问题。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~