SpringBoot3-从环境搭建到异常处理的完整指南

06-01 1037阅读

前言

SpringBoot作为Java领域最流行的微服务框架,其3.0版本带来了许多令人兴奋的新特性。本文将详细介绍如何从零开始搭建一个SpringBoot3项目,并实现常见的开发需求,包括Maven配置、Web开发、异常处理等核心功能。

一、开发环境准备

1.1 软件要求

  • IDEA: 2023及以上版本(推荐使用IntelliJ IDEA Ultimate)

  • Maven: 3.6.3及以上版本

  • JDK: 21(SpringBoot3要求至少JDK17)

  • 前置知识: JavaSE、JavaWeb基础

    1.2 环境验证

    安装完成后,请确保在命令行中能正确执行以下命令:

    bash

    复制

    下载

    java -version
    mvn -v

    二、创建SpringBoot3工程

    2.1 通过IDEA创建项目

    1. 打开IDEA,选择"New Project"

    2. 选择"Spring Initializr"

    3. 配置项目基本信息:

      • Group: com.black

      • Artifact: black

      • Type: Maven

      • Java版本: 21

    2.2 核心Maven配置

    以下是项目的基础POM文件配置:

    xml

    复制

    下载

    运行

    
        4.0.0
        
            org.springframework.boot
            spring-boot-starter-parent
            3.0.0 
            
        
        
        
    

    重要变更点:

    • 将SpringBoot版本从2.7.9升级到3.0.0

    • 确保Java版本设置为21

      三、Web开发基础

      3.1 内置Tomcat

      SpringBoot内置了Tomcat服务器,无需额外配置即可运行Web应用:

      java

      复制

      下载

      @RestController
      @RequestMapping("/api")
      public class TestController {
          
          @RequestMapping("/test")
          public Res test(@RequestBody User user) {
              return Res.success();
          }
      }

      3.2 统一响应封装

      推荐使用统一的响应格式,便于前端处理:

      java

      复制

      下载

      @Data
      @NoArgsConstructor
      @AllArgsConstructor
      public class Res {
          private String code;
          private String message;
          private Object data;
          public static Res success() {
              return new Res(Constants.CODE_200, "", null);
          }
          public static Res success(Object data) {
              return new Res(Constants.CODE_200, "", data);
          }
          public static Res error() {
              return new Res(Constants.CODE_500, "系统错误", null);
          }
          public static Res error(String code, String message) {
              return new Res(code, message, null);
          }
      }

      四、高级配置

      4.1 WebMvc配置

      实现拦截器配置和资源放行:

      java

      复制

      下载

      @Configuration
      public class WebMvcConfig implements WebMvcConfigurer {
          
          @Override
          public void addInterceptors(InterceptorRegistry registry) {
              registry.addInterceptor(jwtInterceptor())
                      .addPathPatterns("/**")
                      .excludePathPatterns(
                              "/auth/login",
                              "/auth/register",
                              "/swagger**/**",
                              "/webjars/**",
                              "/v2/**",
                              "/doc.html");
          }
          
          @Bean
          public JWTInterceptor jwtInterceptor() {
              return new JWTInterceptor();
          }
      }

      4.2 阿里云Maven仓库配置

      加速依赖下载:

      xml

      复制

      下载

      运行

          
              nexus-aliyun
              nexus-aliyun
              https://maven.aliyun.com/nexus/content/groups/public/
              
                  true
              
              
                  false
              
          
      

      五、异常处理机制

      5.1 全局运行时异常处理

      java

      复制

      下载

      @ControllerAdvice("com.black.controller")
      public class GlobalExceptionHandler {
          
          @ExceptionHandler(Exception.class)
          @ResponseBody
          public Res handleException(Exception e) {
              e.printStackTrace();
              return Res.error();
          }
      }

      5.2 自定义业务异常

      1. 定义异常类:

      java

      复制

      下载

      @Getter
      public class ServiceException extends RuntimeException {
          private final String code;
          
          public ServiceException(String code, String message) {
              super(message);
              this.code = code;
          }
      }
      1. 异常处理器:

      java

      复制

      下载

      @ControllerAdvice
      public class BusinessExceptionHandler {
          
          @ExceptionHandler(ServiceException.class)
          @ResponseBody
          public Res handleServiceException(ServiceException e) {
              return Res.error(e.getCode(), e.getMessage());
          }
      }
      1. 使用示例:

      java

      复制

      下载

      @GetMapping("/user/{id}")
      public Res getUser(@PathVariable Long id) {
          User user = userService.findById(id);
          if (user == null) {
              throw new ServiceException("404", "用户不存在");
          }
          return Res.success(user);
      }

      六、常用依赖说明

      6.1 核心依赖

      • Web开发: spring-boot-starter-web

      • 数据库:

        • mybatis-spring-boot-starter

        • spring-boot-starter-data-redis

        • 工具类: hutool-all

          6.2 辅助工具

          • JSON处理:

            • gson

            • fastjson

            • HTTP客户端:

              • okhttp

              • httpclient

              • 文档生成: springfox-boot-starter

                七、项目启动与测试

                1. 创建主启动类:

                java

                复制

                下载

                @SpringBootApplication
                public class BlackApplication {
                    public static void main(String[] args) {
                        SpringApplication.run(BlackApplication.class, args);
                    }
                }
                1. 测试Controller:

                java

                复制

                下载

                @RestController
                @RequestMapping("/test")
                public class TestController {
                    
                    @GetMapping("/exception")
                    public Res testException() {
                        int i = 1 / 0; // 触发算术异常
                        return Res.success();
                    }
                    
                    @GetMapping("/business")
                    public Res testBusiness() {
                        throw new ServiceException("400", "业务异常示例");
                    }
                }

                结语

                本文详细介绍了SpringBoot3项目的搭建过程和核心功能实现。通过合理的项目结构设计和统一的异常处理机制,可以大大提高项目的可维护性和开发效率。SpringBoot3在性能、安全性和易用性方面都有显著提升,是开发现代Java Web应用的理想选择。

                希望本文能帮助您快速上手SpringBoot3开发,如有任何问题,欢迎在评论区留言讨论!

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码