前言
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创建项目
-
打开IDEA,选择"New Project"
-
选择"Spring Initializr"
-
配置项目基本信息:
-
Group: com.black
-
Artifact: black
-
Type: Maven
-
Java版本: 21
-
2.2 核心Maven配置
以下是项目的基础POM文件配置:
xml
复制
下载
运行
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> <!-- 注意这里改为3.0.0 --> <relativePath/> </parent> <!-- 其他配置保持不变 --> </project>
重要变更点:
-
将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
复制
下载
运行
<repositories> <repository> <id>nexus-aliyun</id> <name>nexus-aliyun</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
五、异常处理机制
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 自定义业务异常
-
定义异常类:
java
复制
下载
@Getter public class ServiceException extends RuntimeException { private final String code; public ServiceException(String code, String message) { super(message); this.code = code; } }
-
异常处理器:
java
复制
下载
@ControllerAdvice public class BusinessExceptionHandler { @ExceptionHandler(ServiceException.class) @ResponseBody public Res handleServiceException(ServiceException e) { return Res.error(e.getCode(), e.getMessage()); } }
-
使用示例:
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
七、项目启动与测试
-
创建主启动类:
java
复制
下载
@SpringBootApplication public class BlackApplication { public static void main(String[] args) { SpringApplication.run(BlackApplication.class, args); } }
-
测试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开发,如有任何问题,欢迎在评论区留言讨论!