简介
Spring framework
中有一个叫@Async
的注解。顾名思义,它是一个能将方法异步化的注解。@Async
可以作用在方法或者类上,只需加上这一注解,就可以轻松将本来同步调用的方法变为异步调用。在实际应用中,如果我们在一段逻辑中不关心某个方法的具体返回值,只是希望调用这个方法,便可以在这个方法加上这个注解,使主逻辑快速返回。
@Target({
ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Async {
/**
* 指定执行器名称。
* 可以是任意一个 java.util.concurrent.Executor 或者 org.springframework.core.task.TaskExecutor
*/
String value() default "";
}
使用方法
环境与配置
@Async
在spring3.0之后就支持了,这里我们测试的环境为:
JAVA 1.8
Spring Boot 1.5.8
Tomcat 7
pom
中的关键配置:
<groupId>org.hxuhao.spring.cloud.demo</groupId>
<artifactId>user-service-provider</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Dalston.SR4</spring-cloud.version>
</properties>
<dependencies>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>