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.     }
目录
相关文章
|
13天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
21天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
41 1
Spring 框架:Java 开发者的春天
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
317 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
14天前
|
监控 前端开发 Java
Java SpringBoot –性能分析与调优
Java SpringBoot –性能分析与调优
|
21天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
16天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
21天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
51 2
|
26天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
32 1
|
28天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
118 1