单元-6

单元-6一 Spring Boot 全局异常处理学习目标教学内容1、Spring Boot 全局异常处理的概念和作用2、Spring Boot 全局异常处理的实现方法二 Spring Boot 定时任务学习目标教学内容1.什么是springboot定时任务2.实现定时任务

一 Spring Boot 全局异常处理学习目标了解 Spring Boot 全局异常处理的概念和作用。学习 Spring Boot 全局异常处理的实现方法。教学内容1、Spring Boot 全局异常处理的概念和作用

Spring Boot 全局异常处理是指在 Spring Boot 应用程序中,对所有未处理的异常进行统一的处理,以避免因未处理异常而导致应用程序崩溃或无法正常运行的情况发生。

Spring Boot 全局异常处理的主要作用是提高应用程序的健壮性和可靠性,保证应用程序能够在出现异常情况时正确处理异常,避免因异常情况而导致用户体验下降和业务受损的情况发生。

2、Spring Boot 全局异常处理的实现方法


public class CustomException extends RuntimeException {
    // 自定义异常的构造方法
    public CustomException(String msg) {
        super(msg);
    }
}

在 Spring Boot 应用程序中,创建一个全局异常处理器类,该类需要实现 Spring Boot 的 ExceptionHandler 接口,并且需要添加 @ControllerAdvice 注解,以便让 Spring Boot 自动扫描并注册该类为全局异常处理器。

@ControllerAdvice
public class GlobalExceptionHandler {
    
    @ExceptionHandler(CustomException.class)
    public Result handleCustomException(CustomException ex) {
        // 处理自定义异常
        // 返回适当的响应,可以是自定义的错误消息或其他信息
        return Result.fail(500,ex.getMessage());
    }
    
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception ex) {
        ex.printStackTrace();
        // 处理其他未处理的异常
        // 返回适当的响应,可以是自定义的错误消息或其他信息
        return Result.fail(500,"系统异常,联系管理员");
    }
}

在 Spring Boot 应用程序中,可以通过抛出异常的方式触发全局异常处理器的处理逻辑,例如:

@GetMapping("/test")//触发自定义异常
public String test() {
    throw new CustomException("test exception");
}
@GetMapping("/test2")//触发系统异常
public void  test2() {
   int i = 10/2;
}

二 Spring Boot 定时任务学习目标

1.了解什么是springboot定时任务

2.掌握并实现springboot定时任务

教学内容1.什么是springboot定时任务

Spring Boot 提供了一个简单的方法来创建和管理定时任务。Spring Boot 定时任务可以帮助我们自动执行一些重复性的任务,例如数据备份、发送邮件、生成报告,爬虫数据等。

2.实现定时任务


     org.springframework.boot
     spring-boot-starter
 

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyTask {
    @Scheduled(fixedRate = 5000)  // 每隔5秒执行一次
    public void doTask() {
        System.out.println("定时任务执行了!");
    }
}

在上面的代码中,我们创建了一个名为 MyTask 的类,并在该类上添加了 @Scheduled 注解。该注解的 fixedRate 属性指定了任务的执行频率,这里是每隔5秒执行一次。

如果在定时任务的执行过程中出现了异常,可以通过在方法上添加 try-catch 块来进行处理。例如:

@Scheduled(fixedRate = 5000)  // 每隔5秒执行一次
public void doTask() {
    try {
        // 执行任务
    } catch (Exception e) {
        // 处理异常
    }
}

在上面的代码中,我们在 doTask() 方法中添加了 try-catch 块来处理可能出现的异常。

在 Spring Boot 中,定时任务默认是启动的。如果需要关闭定时任务,可以在启动类中添加 @EnableScheduling 注解,并在定时任务类中添加一个方法来关闭任务。例如:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
    @Autowired
    private MyTask myTask;
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    public void shutdownTask() {
        myTask.stopTask();
    }
}

在上面的代码中,我们在启动类上添加了 @EnableScheduling 注解来启用定时任务。同时,我们在启动类中定义了一个 shutdownTask() 方法,该方法调用了 MyTask 类中的 stopTask() 方法来关闭定时任务。

Spring Boot 定时任务是一个非常实用的功能,可以帮助我们自动执行一些重复性的任务。在创建定时任务时,我们需要注意任务的执行频率和异常处理。同时,我们还需要考虑如何启动和关闭定时任务。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注