全局异常处理和项目打包部署

87 阅读2分钟

全局异常处理和项目打包部署

一、springboot项目打包部署

使用 Spring Boot 打包和部署应用程序可以按照以下步骤进行:

  1. 在你的 Spring Boot 项目中确保已经配置好了 Maven 或 Gradle 构建工具。

  2. 打开终端或命令行界面,进入项目的根目录。

  3. 执行以下命令进行打包:

    • 如果使用 Maven,运行 mvn package 命令:

      Copy Code
      mvn package
      
    • 如果使用 Gradle,运行 gradlew buildgradle build 命令:

      Copy Code
      gradlew build
      

    这将在项目的 target(Maven)或 build(Gradle)目录中生成一个可执行的 JAR 文件。

  4. 检查打包结果并确认 JAR 文件是否生成成功。

  5. 将生成的 JAR 文件复制到目标服务器或部署环境中。

  6. 在目标服务器上使用 Java 命令运行 JAR 文件:

    Copy Code
    java -jar your-application.jar
    

    其中,your-application.jar 是你的应用程序的 JAR 文件名。

  7. 应用程序将会启动并监听配置的端口。你可以通过访问对应的 URL 来验证应用程序是否正常运行。

需要注意的是,部署 Spring Boot 应用程序时,你需要确保目标服务器已经安装了相应版本的 Java 运行时环境(JRE 或 JDK)。另外,你也可以使用一些容器化技术,如 Docker,来更方便地部署和管理 Spring Boot 应用程序。具体的部署方式可以根据你的需求和实际情况进行灵活调整和配置。

注意:如何关掉一个端口所在应用

  • Windows系统:

    Copy Code
    netstat -ano | findstr :8080
    taskkill /PID <PID> /F
    
  • Linux或Mac系统:

    Copy Code
    lsof -i :8080
    kill -9 <PID>
    

二、全局异常处理

异常捕捉类:GlobalExceptionHandler.java

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleException(Exception ex) {
        // 异常处理逻辑,例如记录日志、转换异常信息等
        ErrorResponse errorResponse = new ErrorResponse(5002, "Internal / 0");
        return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

异常信息类:ErrorResponse.java

public class ErrorResponse {
    private int code;
    private String msg;
    public ErrorResponse(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}

这段代码是一个全局异常处理器(Global Exception Handler),它使用了Spring框架提供的@ControllerAdvice注解来标识这是一个全局异常处理类。

在这个类中,有一个handleException方法被标注了@ExceptionHandler(Exception.class)注解,表示该方法用于处理所有类型的Exception异常。当应用程序中抛出任何Exception类型的异常时,该方法将被调用来处理异常并返回一个自定义的错误响应。

在handleException方法中,你可以编写异常处理逻辑,例如记录日志、转换异常信息等。在这个例子中,它创建了一个ErrorResponse对象,其中包含错误码(5002)和错误消息("Internal / 0")。然后,通过创建一个ResponseEntity对象并将其包装在ResponseEntity中返回,以便返回一个HTTP响应。

作者:vitos