spring添加@Async后报错.BeanCurrentlyInCreationException

今天想优化一个action,所以在一个方法上添加了@Async的注解,
可是在启动程序时候却报了这个错,求指点。
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'cacheService': Bean with name 'cacheService' has been injected into other beans【】in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:568)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:797)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:530)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:770)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:342)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1368)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:320)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1335)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:734)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:259)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:511)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:403)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:405)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:372)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:457)
at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring 使用@Async出现循环依赖Bean报错的解决方案
初现端倪nn      早前打算将项目阿里云上的Linux服务器上时,突然出现了以下错误:n      Caused by:org.springframework.beans.factory.BeanCurrentlyInCreationException: Errorcreating bean with name 'asyncUpdate': Bean with name 'asyncUp
Spring boot 注解@Async无效,不起作用
springboot1.5+,项目框架中集成了异步多线程操作配置..nn同类方法中使用异步注解没有作用,使用小的demo做了一个样例......,这样执行后就,是串行单线程......nnnpackage com.dianshichengjin.makemoney.web.rest.controller;nnimport org.slf4j.Logger;nimport org.slf...
springboot的@Async循环依赖问题
循环依赖顾名思义,就是两个类相互依赖,a依赖b,b依赖a。但是今天项目中遇到个问题却不太一样,没有此类相互依赖现象,却报了此类错误。于是重新建了个类,将用@Async注解 的方法都移出去放在此类中,于是解决了这个问题,虽然解决了问题,但还不知道原理,mark一下,以后回头再整理原理。 n 大概知道了一点端倪,在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)...
Spring Async不得不知的用法
在Spring中使用需要对方法进行异步操作的时候,只需要在对应的方法上加上 @Async 注解就好了,如果想要获取返回值或者进行监听呢? n 首先,整合异步框架需要在SpringBoot入口类中添加@EnableAsync注解,表明开启异步框架。 n 从@Async类的注释上得知nnnnIn terms of target method signatures, any parameter ty...
SpringBoot2.1.x报错循环依赖问题解决方法
n最近的springboot项目开发时运行没问题,打包运行时报错:抛出BeanCurrentlyIn CreationException异常:Requested bean is currently in creation: Is there an unresolvable circular reference? 查了下原因是循环依赖问题。nnn什么是循环依赖?nn当我们有两个(当然也可能是多个)类...
Spring task @Async执行失败原因分析
package cn.yang.test.utils;import cn.yang.test.entity.Student; nimport org.springframework.scheduling.annotation.*; nimport org.springframework.stereotype.Component;import java.text.SimpleDateFormat;
[网络整理] [爬坑] springboot @async 无效
在@SpringBootApplication启动类 添加注解@EnableAsyncrn异步方法使用注解@Async ,返回值为void或者Futurern切记一点 ,异步方法和调用方法一定要写在不同的类中,如果写在一个类中, rn是没有效果的rnrnrn具体@Async配置可以参考另一个博主的文章https://blog.csdn.net/clementad/article/details/536073...
在 SpringBoot 中使用 @EnableAsync、@Async 轻松实现异步任务
前言nn之前的邮件发送、定时任务,在应用方面,最好配合使用异步功能 n由于代码十分简单,就不做过多的说明nn代码nn① 在 main 类中开启异步注解 @EnableAsyncnnpackage com.cun;nnimport org.springframework.boot.SpringApplication;nimport org.springframework.boot.autoconf...
利用 spring @Async 注解 开启异步 线程池处理任务
n1.nnimport com.alibaba.dubbo.common.logger.Logger;nimport com.alibaba.dubbo.common.logger.LoggerFactory;nimport org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;nimport org.springfra...
关于@Async注解所起子线程会随着主线程退出而退出的问题的分析
一、@Async代码示例:rnAbstractTask.javarnpublic abstract class AbstractTask {rn private static Random random = new Random();rnrn public void doTaskOne() throws Exception {rn System.out.println("开始做任务一...
SpringBoot异步任务及Async不起作用的原因
springboot中为我们提供了@Async注解,查看下源码n@Target({ElementType.METHOD, ElementType.TYPE})n@Retention(RetentionPolicy.RUNTIME)n@Documentednpublic @interface Async {n String value() default "";n}n我们发现,@Async是一...
关于spring 注入中循环 ,环形依赖问题的明确
关于spring 注入中循环 ,环形依赖问题的明确
Spring及SpringBoot @Async配置步骤及注意事项
前言n最近在做一个用户反馈的功能,就是当用户反馈意见或建议后服务端将意见保存然后发邮件给相关模块的开发者。考虑发邮件耗时的情况所以我想用异步的方法去执行,于是就开始研究Spring的@Async了。但网上的许多教程都是相互抄袭且直接复制代码的,根本没有去自己实践或者更改代码,所以在这两天我遇到了许多问题,使得@Async无效,也一直没有找到很好的文章去详细的说明@Async的正确及错误的使用方法
Spring中@Async 异步不执行问题
n rn【问题中的配置】rn  rn  spring相关配置文件root-context.xml mvc-context.xml其中mvc-context.xml被包含于root-context.xml rn  web.xml的配置为rn  <context-param>rn    <param-name>contextConfigLocation</param-na...
Spring中使用@Async完成方法的异步事件调用
什么是事件机制 ? n       今天在工作中遇到一个问题,需要在原来运行的项目上,增加一功能:(每次访问项目都向redis中写入数据),但是不能影响原来项目的运行.具体实现的思路我用了两种:n1.直接在项目添加一个拦截器(也可以直接用@ModelAttribute注解,来完成此功能),在监听器里面做写数据的操作;n2.采用异步机制,类似于广播模式,在拦截器里面发布向redis写数据的信号,用s...
await写在async函数里,为什么还是报错,
n我已经注明expelApprentice是一个async函数,但是54行的await就会报错,nawait只能在async函数里用,这话没错,n报错的原因是我的success是一个函数,我的that.requestExpelEnv(dataset.expelinfo.apprenticeUid);其实是在success里的,但是我把async注在最外层的expelApprentice里,解决办法...
Spring使用异步注解@Async正确姿势
最近项目中用到了该注解,对其查找线程池的顺序比较困惑,查阅资料简单整理在此。nn nn注意的点nn* 必须用在public方法上n* 在某异步方法的同一个类的其他方法调用此异步方法无效nnSpring的异步配置nn要激活Spring的异步行为,可以为配置类添加@EnableAsync注解。nnn@EnableAsyncn@SpringBootApplicationnpublic class App...
SpringBoot中使用@Async注解失效问题记录
错误示例,同一个类中使用异步方法:nnpackage com.xqnode.learning.controller;nnimport com.fasterxml.jackson.core.JsonProcessingException;nimport org.springframework.scheduling.annotation.Async;nimport org.springframewor...
SpringMVC异步处理之@Async(附源代码 - 单元测试通过)
以下转自:http://13shu.iteye.com/blog/2021652n 解决的问题: n 目前系统中,有个别的查询比较慢,大概需要几秒才能返回结果。在大量使用此功能时导致系统变慢。 n 可能会出现的原因: n 1、程序问题(包括业务设计、业务逻辑处理、数据库优化等) n 2、架构问题 n 3、其他原因 n 此处就第二点做一下分析: n 用户查询开始到返回结果到页面,此处是
06 Spring 异步执行,任务调度(@Schedule、@Async)
转载请注明来源 赖赖的博客导语n 一个简单的抽象,可以解决百分之八十的问题。n在写Spring 应用的时候,会遇到一些异步执行和任务调度的问题,例如:Spring MVC中需要向微信发送请求,告诉微信进行公众号推送。这个时候需要用到异步执行,而周报表、月报表、日最高点击等,需要用到任务调度。 nSpring高度凝聚了及其简单的调度和异步执行方式,迅速解决百分之八十的问题。 实例项目工程目录结构和代
SpringBoot注解循环依赖
SpringBoot注解循环依赖nn今天在进行redis链接池配置代码时,运行测试时发现了一个循环依赖问题,在此记录下nn问题所在nn由于我在同一个类中对redis链接池进行配置,使用@Bean将返回的链接池对象(jedisPool)配置到IOC容器中,不过由于,同时又使用@Autowired将该IOC容器的对象(jedisPool)注入到依赖的成员变量中,导致了循环依赖错误。nn@Service...
Spring异步方法注解@Async
spring 配置文件增加以下配置:<!-- Async 异步调用 -->n <task:executor id="myexecutor" pool-size="5"/>n <task:annotation-driven executor="myexecutor"/>注意点:在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)..
异步任务spring @Async注解源码解析
1.引子rn开启异步任务使用方法:rn1).方法上加@Async注解 rn2).启动类或者配置类上@EnableAsyncrn2.源码解析rn虽然spring5已经出来了,但是我们还是使用的spring4,本文就根据spring-context-4.3.14.RELEASE.jar来分析源码。rn2.1.@Async rnorg.springframework.scheduling.annotat...
spring 3以及之后版本的异步方法
这里我们来看看spring 3.0 以及以后版本中支持的@Async (方法异步)n其实在之前的程序中也没看到过有使用@Async 的,最近才接触到,想着如果使用异步缓存是不是响应速度会大幅提升那,就比如你去查询,发现缓存中没有数据,你要从数据库中获取数据,然后要把数据放到缓存中然后才能将数据展示到前台,其中将数据放到缓存的这个步骤占用了一部分时间,这样的话前台展示就比较慢了,所以如果保存到缓存
Spring中@Async注解实现“方法”的异步调用
简单介绍 nSpring为任务调度与异步方法执行提供了注解支持。通过在方法上设置@Async注解,可使得方法被异步调用。也就是说调用者会在调用时立即返回,而被调用方法的实际执行是交给Spring的TaskExecutor来完成。nn开启@Async注解:nnnntask:annotation-driven executor="annotationExecutor" />nntask:executo
Spring Boot系列二 Spring @Async异步线程池用法总结
Spring异步线程池的接口类, @Async, @AsyncUncaughtExceptionHandler ,@EnableAsync
@EnableAsync和@Async开始异步任务支持
Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.在开发中实现异步任务,我们可以在配置类中添加@EnableAsync开始对异步任务的支持,并在相应的方法中使用@Async注解来声明一个异步任务。
spring循环依赖问题排查
一、背景rnrn清分服务添加一个异步处理功能(@asyc),本地测试时发现启动服务后有时正常有时异常。rnrn rnrn二、代码再现rnrn1、启动类代码rnrnrnrnrnrnrnrnrnrnrnpublic static void main(String[]rn args) throws Exceptionrn {rnrn rnrn Stringrn configLocation = "cla
Spring框架下向异步线程传递HttpServletRequest参数的坑
在spring的注解 @RequestMapping 之下可以直接获取 HttpServletRequest 来获得诸如request header等重要的请求信息:n@Slf4jn@RestControllern@RequestMapping("/test")npublic class TestController {n n private static final String HEA...
使用Spring的@Async解决界面耗时操作,增强用户的体验度
首先需要在spring的配置文件当中添加一下内容:<!-- 定时器的线程池数量大小 -->n <task:scheduler id="scheduler" pool-size="5" />n <!-- 任务线程池的数量大小,core size为5,max size为15,队列容量为5,达到总线程数时抛出异常、不执行 -->n <task:executor ...
使用SpringBoot的@Async实现异步调用方法,以及自己开启新线程异步调用
一. springboot的@Async注解实现异步rnrn要在springboot中使用异步调用方法,只要在被调用的方法上面加上@Async就可以了rnrnrnrn1.准备工作rnrn准备一个springboot工程,在Application类上加上EnableAsync注解开启异步rnrnrnrn/**rn * @Author: zgdrn * @Date: 18/09/12 10:27rn * @Description:...
Spring异步方法注解 @Async
@Async0. 介绍在Spring 3.x之后,通过内置@Async标明异步方法,可以简化异步开发流程。@Async既可提供无返回值的调用,也可提供有返回值的调用,下文将分别介绍两种使用方式。1. 代码Demo1.1 线程池配置Spring线程池配置有两种基本配置方式,此处实用其中一种<task:executor id="myexecutor" pool-size="5" /> n<task:
springboot---@Async实现异步调用及异步回调Future
异步调用相对的是同步调用。nn同步方法调用的时候必须是按照顺序执行的,上一行代码执行完,才会执行下一行。而异步方法调用是相当于多个线程执行,不需要等待上一行代码的执行结果。nn首先测试方法同步的情况:nncontroller:nnnpackage springboot_async.async_test;nnimport org.springframework.beans.factory.annot...
【记一下】Spring中配置线程池,使用异步@Async失效或者多线程失效
首先,配置一下线程池: n需要@EnableAsync开启异步nnnn@Configurationn@EnableAsyncnpublic class AppConfiguration{nn @Bean(name = &quot;taskExecutor&quot;)n public Executor taskExecutor() {n ThreadPoolTaskExecutor exec...
《SpringBoot从入门到放弃》之第(十三)篇——使用@Async异步调用,ThreadPoolTaskScheduler线程池,使用Future以及定义超时
本篇博客是在上一篇《SpringBoot从入门到放弃》之第(十二)篇——使用@Async实现异步调用的基础上继续的。nn创建 TaskPoolConfig 类,配置线程池:nnnpackage com.test.util;nnimport org.springframework.context.annotation.Bean;nimport org.springframework.context....
Spring开启@Async异步方法(javaconfig配置)
在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。rnrn应用场景:rnrn某些耗时较长的而用户不需要等待该方法的处理结果某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时rnrn代码rnrn创建AsyncTaskrn/**n * 异步任务n *n * @author Pengn *
spring mvc使用Servlet3异步要注意的几个问题
1、注意添加[code=&quot;java&quot;]true[/code]在web.xml中对DispatcherServlet和所有filter添加truernrn2、如果集成了shiro一定要注意在mapping中增加dispatcher项,否则会抛出org.apache.shiro.UnavailableSecurityManagerException异常rnrn[code=&quot;java&quot;]rnrn ...
SpringBoot 线程池配置 实现AsyncConfigurer接口
线程是开发中常用到的,但是如果没有定义线程池,程序不断的创建,销毁线程,需要消耗很多时间,所以我们定义线程池可以减小这部分时间,我来实现AsyncConfigurer来配置线程池,先看看这个接口有什么方法nnnpublic interface AsyncConfigurer {nn Executor getAsyncExecutor();n n AsyncUncaughtExceptionHand...
在spring-mvc.xml里配置异步
scheduler="scheduler" />nnqueue-capacity="10" />nn nnnnnnn在对应的package下  要用到异步的方法 加上    @Async   注解
【小家Spring】高性能关键技术之---体验Spring MVC的异步模式(Callable、WebAsyncTask、DeferredResult) 基础使用篇
前言n现在已经在2019年,这个时候再来谈Spring MVC的异步模式,好像有点老掉牙了。毕竟现在都Spring5的时代了,甚至将来肯定是webflux的天下了。n而Spring MVC的异步请求模式是Spring3.2就推出了,它是基于基Servlet3.0规范实现的,而此规范是2011年推出的,距现在已经有近10的历史了,可谓是非常非常成熟的一种技术规范了。n但是震惊的是,我前端时间一连问了...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据培训后 学习java后