`
阅读更多
配置Spring的任务调度时,使用了@Async注解用于异步调用,出了一个异常。

Exception:
Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.

解决方法一:导入cglib-nodep-2.1_3.jar包,或者导入asm-2.2.3.jar和cglib-2.2.jar
解决方法二:为需要代理的目标类抽出接口。

这大概涉及到了String的AOP吧,没细琢磨,懂得人还请多多指教。

需要说明的一点:很多文章举例时把@Async和任务调度混在了一起,我自己试验了一下,发现任务调度和@Async没有必然联系,在xml配置中仅仅声明<task:annotation-driven/> 就可以使用@Async了。

觉得annotation真是很方便。
1
0
分享到:
评论
1 楼 yizhl 2012-11-10  
非常感谢 确实是少jar了。。加了cglib-2.2.jar 后正常了

相关推荐

    springboot中@Async异步调用注解的使用

    在Spring Boot框架中,@Async注解是实现异步任务处理的关键工具,它允许开发者将耗时的操作从主线程中分离出来,以提高应用程序的响应速度。本文将深入探讨@Async的工作原理、配置方法以及使用场景,帮助你更好地...

    【java框架】SpringBoot(10) -- SpringBoot巧用 @Async提升API接口并发能力 .pdf

    在Spring Boot中,我们可以使用`@Async`注解将同步方法转换为异步方法。 2. **SpringBoot中的@Async** 要使用`@Async`,首先需要配置一个`TaskExecutor`。Spring Boot默认提供了一个简单的线程池配置,如果需要...

    Spring Boot利用@Async异步调用:使用Future及定义超时详解

    以下是如何在测试中使用`Future`来检查异步任务状态并处理超时: ```java @Slf4j @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class ApplicationTests { @Autowired private Task task; ...

    谈谈SpringBoot中@Async注解使用的一些误区

    在Spring Boot应用中,`@Async`注解是Spring框架提供的异步处理功能,它使得开发者可以方便地实现非阻塞式编程,提高应用程序的执行效率。然而,很多初学者在使用`@Async`时可能会遇到一些误区,导致程序运行结果不...

    Spring中@Async用法详解及简单实例

    - **异常处理**:默认情况下,@Async方法中的异常会被包装成AsyncExecutionException抛出,可以通过全局异常处理器捕获并处理。 - **通知机制**:Spring提供了异步方法完成后的通知回调,如AsyncConfigurer接口的...

    浅谈Spring @Async异步线程池用法总结

    浅谈Spring @Async异步线程池用法总结 本文主要介绍了Spring @Async异步线程池的用法总结,包括异步线程池的接口类、@Async定义异步任务、Spring开启异步配置等内容。 1. 异步线程池的接口类 Spring提供了多种...

    Spring Boot 线程池的创建、@Async 配置步骤及注意事项.docx

    在Spring Boot应用中,使用线程池和异步处理是提高系统并发性能和响应速度的重要手段。`@Async`注解是Spring提供的一个特性,用于标记方法为异步执行,这样可以避免主线程等待耗时的操作,提高系统效率。本文将详细...

    Spring boot注解@Async线程池实例详解

    Spring 应用默认的线程池,指在 @Async 注解在使用时,不指定线程池的名称。查看源码,@Async 的默认线程池为 SimpleAsyncTaskExecutor。SimpleAsyncTaskExecutor 并不是严格意义的线程池,达不到线程复用的功能。 ...

    带有@Transactional和@Async的循环依赖问题

    在Spring框架中,`@Transactional` 和 `@Async` 是两个非常重要的注解,它们分别用于声明事务管理和异步执行。然而,当这两个注解同时出现在一个方法上时,可能会引发一些复杂的问题,特别是在存在循环依赖的情况下...

    Springboot启用async异步调用

    在Spring Boot中,启用`async`异步调用是一项关键功能,它允许应用程序在处理请求时启动一个后台任务,而不必等待该任务完成。这在处理耗时操作时尤其有用,如大数据计算、发送电子邮件或文件上传等。下面将详细阐述...

    深入理解spring boot异步调用方式@Async

    在Spring Boot应用中,`@Async`注解用于实现异步方法执行,这极大地提高了应用程序的并发性能。本文将深入探讨`@Async`的工作原理、使用场景以及如何配置和测试。 1. **异步注解的启用** 使用`@EnableAsync`注解在...

    Spring Boot利用@Async异步调用:ThreadPoolTaskScheduler线程池的优雅关闭详解

    在Spring Boot应用中,使用`@Async`注解可以方便地实现异步任务,而`ThreadPoolTaskScheduler`作为Spring提供的一个任务调度器,允许我们创建一个定制化的线程池来处理这些异步任务。本文将深入探讨如何优雅地关闭`...

    Spring Async:实现异步调用示例.docx

    - 如果在Web应用中使用,确保`@Async`方法不在控制器的HTTP请求处理方法中,因为它们通常需要同步返回响应。 - 异步方法不适用于那些依赖于请求上下文或session数据的情况。 通过这种方式,Spring Async帮助...

    Spring基于线程池的定时任务线挰异常实践

    总结来说,这篇博文探讨了如何在Spring中使用线程池执行定时任务,包括配置线程池、创建定时任务、异常处理和线程安全。同时,提到了Spring MVC在Web开发中的角色,以及它如何与任务调度协同工作。理解和掌握这些...

    AsyncDemo.zip

    在Spring Boot中使用`@Async`,首先需要配置一个异步执行的配置类。这个类通常会启用`AsyncConfigurer`接口,其中包含两个主要的方法:`getAsyncExecutor()`和`getTaskExecutor()`。`getAsyncExecutor()`用于配置...

    Concurrent-MultiThread-Async:多线程的使用,concurrent包的使用,并发队列的时候,@ Async方法返回值的异步处理,

    在`@Async`方法中,如果出现异常,Spring会默认抛出一个`AsyncUncaughtExceptionHandler`。 6. **线程同步和锁机制**: Java提供了多种线程同步机制,包括`synchronized`关键字、`ReentrantLock`、`Semaphore`、`...

    Spring3.2异步处理http请求

    为了捕获和处理这些异常,可以在`@Async`方法中使用`try-catch`块,或者自定义异常处理器。 ### 6. 日志与事务管理 由于异步执行,日志记录和事务管理可能会变得复杂。Spring提供了支持异步方法的日志记录,并通过...

    springboot学习

    在传统Spring应用中使用spring-boot-actuator模块提供监控端点 Spring Boot应用的后台运行配置 Spring Boot自定义Banner Dubbo进行服务治理 chapter9-2-1:Spring Boot中使用Dubbo进行服务治理 chapter9-2-2:Spring...

    spring boot注解事务+多线程

    在Spring Boot中,我们可以使用`@Async`注解来创建异步方法,从而实现多线程。这个注解需要配合`@EnableAsync`在配置类上启用异步支持。例如: ```java @Service @EnableAsync public class AsyncService { @Async...

    spring3.0异步

    Spring提供了`AsyncUncaughtExceptionHandler`来捕获并处理异步方法抛出的未被捕获异常。此外,通过`@EnableAsync`配置的`Executor`,我们可以调整线程池大小、队列容量等参数以优化性能。 ### 6. 性能优化 异步...

Global site tag (gtag.js) - Google Analytics