用注解@Async标注
在xsd约束中,要有
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.0.xsd
在spring的xml文件中,要有
<!--
开启对异步任务的支持
-->
<task:annotation-driven></task:annotation-driven>
在maven pom中,要有
<!--
spring 依赖
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
举个栗子:
@Service
public class AsyncTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
AsyncTest test = (AsyncTest) context.getBean("asyncTest");
test.asyncMethod();
System.out.println("主函数执行完毕了。。。");
}
@Async
public void asyncMethod(){
try {
//让程序暂停3000秒,相当于执行一个很耗时的任务
Thread.sleep(3000);
System.out.println("执行异步方法");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}