Java课程实验 Spring Boot 任务管理(上)

简介: Java课程实验 Spring Boot 任务管理

一、实验目的

1.使用 Spring Boot 完成异步任务、定时任务以及邮件任务。

二、实验内容

1.熟悉 Spring Boot 整合异步任务的实现

2.熟悉 Spring Boot 整合定时任务的实现

3.熟悉 Spring Boot 整合邮件任务的实现

三、实验步骤及截图

1.使用Idea+Maven新建项目,并进行必要配置。

2.编写入口类,并启用计划任务

1. @EnableScheduling
2. @SpringBootApplication
3. public class ChapterAsync_LWL {
4. public static void main(String[] args){
5.         SpringApplication.run(ChapterAsync_LWL.class,args);
6.     }
7. }

3.在service类,编写方法测试cron定时任务。

1. //    简单的定时任务
2. 
3.     @Scheduled(cron = "10 * * * * *")
4. 
5.     public void Task01(){
6. 
7.         System.out.println("***********每分钟的第10S启动!*********"+simpleDateFormat.format(new Date()));
8. 
9.     }

4.在service类,编写方法测试fixedDelay定时任务。

1. //delay从第一次开始就计算间隔时间
2. 
3.     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
4. 
5.     int index = 1;
6. 
7.     @Scheduled(fixedDelay = 10000)
8. 
9.     public void Task02(){
10. 
11.         System.out.println("***********Task02任务第"+index+"启动!*********"+simpleDateFormat.format(new Date()));
12. 
13.         try{
14. 
15.             Thread.sleep(5000);
16. 
17.         }catch (Exception e){
18. 
19.             System.out.println("错误!");
20. 
21.         }
22. 
23.         System.out.println("***********Task02任务第"+index+"结束!*********"+simpleDateFormat.format(new Date()));
24. 
25.         index++;
26. 
27.     }

5.在service类,编写方法测试fixedRate定时任务。

1.    //rate从第一次开始就计算间隔时间
2. 
3.     @Scheduled(fixedRate = 10000)
4. 
5.     public void Task03(){
6. 
7.         System.out.println("***********Task03任务第"+index+"启动!*********"+simpleDateFormat.format(new Date()));
8. 
9.         try{
10. 
11.             Thread.sleep(5000);
12. 
13.         }catch (Exception e){
14. 
15.             System.out.println("错误!");
16. 
17.         }
18. 
19.         System.out.println("***********Task03任务第"+index+"结束!*********"+simpleDateFormat.format(new Date()));
20. 
21.         index++;
22. 
23.     }

6.编写controller类,添加sendSms方法,调用无返回值的service方法。

1. @Autowired
2. 
3.     AsynService asynService;
4. 
5.     @GetMapping("/sendSMS")
6. 
7.     public String sendSms() throws Exception{
8. 
9.         System.out.println("***********主方法开始运行***********");
10. 
11.         Long timeStart = System.currentTimeMillis();
12. 
13.         asynService.sendSMS();
14. 
15.         Long timeEnd = System.currentTimeMillis();
16. 
17.         System.out.println("***********主方法结束运行--异步调用业务逻辑耗时"+(timeEnd-timeStart)+"***********");
18. 
19.         return "success";
20. 
21.     }

1. @Async//无返回值的被调用方法
2. 
3.     public void sendSMS() throws Exception{
4. 
5.         System.out.println("A无返回值***********耗时的业务逻辑开始被调用***********");
6. 
7.         Long timeStart = System.currentTimeMillis();
8. 
9.         Thread.sleep(50*1000);//模拟一个耗时的操作
10. 
11.         Long timeEnd = System.currentTimeMillis();
12. 
13.         System.out.println("B无返回值***********耗时的业务逻辑结束被调用,耗时:"+(timeEnd-timeStart)+"***********");
14. 
15.     }
目录
相关文章
|
4天前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
1天前
|
前端开发 IDE Java
"揭秘前端转Java的秘径:SpringBoot Web极速入门,掌握分层解耦艺术,让你的后端代码飞起来,你敢来挑战吗?"
【8月更文挑战第19天】面向前端开发者介绍Spring Boot后端开发,通过简化Spring应用搭建,快速实现Web应用。本文以创建“Hello World”应用为例,展示项目基本结构与运行方式。进而深入探讨三层架构(Controller、Service、DAO)下的分层解耦概念,通过员工信息管理示例,演示各层如何协作及依赖注入的使用,以此提升代码灵活性与可维护性。
|
1天前
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
7 1
|
5天前
|
Java
Java SpringBoot 7z 压缩、解压
Java SpringBoot 7z 压缩、解压
16 1
|
5天前
|
Java API 开发者
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
|
5天前
|
Java 知识图谱
知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j
知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j
12 0
|
5天前
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
10 0
|
5天前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
14 0
|
5天前
|
前端开发 Java
如何实现 Java SpringBoot 自动验证入参数据的有效性
如何实现 Java SpringBoot 自动验证入参数据的有效性
15 0
|
5天前
|
存储 设计模式 安全
Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类
Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类
5 0