项目结构
主方法中,需要添加注释
package com.lw;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAsync//开启异步功能
@EnableScheduling//开启定时功能
@SpringBootApplication
public class YiburenwuApplication {
public static void main(String[] args) {
SpringApplication.run(YiburenwuApplication.class, args);
}
}
AsyncService类中,写入延迟时间
package com.lw.service;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service
public class AsyncService {
@Async
public void holl(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("3秒后");
}
}
AsyncController类中写入需要延迟代码
```java
package com.lw.Controller;
import com.lw.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AsyncController {
@Autowired
AsyncService asyncService;
@RequestMapping("/holle")
public String holle(){
asyncService.holl();//延迟三秒钟
return "ok";
}
}
下面是定时任务
ScheduledService类中,写入执行后的代码
package com.lw.service;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
public class ScheduledService {
//在一个特定的时间执行这个方法 Timer cron可以用在线表达试
//cron表达式 秒 分 时 日 月 星期 问号也可用
@Scheduled(cron = "0 * * * * *")//cron = "0 10 9 8 * *"或cron = "0 10 9 8 * ?*“每个月的8日9点10分0秒的时候执行一次
public void hello(){
System.out.println("你被执行了");
}
}