Spring Boot项目的常用依赖有哪些?

在Spring Boot项目开发中,依赖的选择取决于具体业务需求。以下是常用的依赖分类及说明,涵盖Web开发、数据访问、工具类等场景:

一、核心基础依赖

  1. Spring Web

    • 作用:提供Web开发支持,包含Spring MVC和内置Tomcat服务器,用于处理HTTP请求、路由映射等。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
  2. Spring Boot Starter

    • 作用:Spring Boot的核心启动器,提供自动配置、日志、YAML解析等基础功能,其他starter通常依赖它。
    • 说明 :一般无需单独引入,其他starter(如spring-boot-starter-web)会自动包含。

二、数据访问依赖

  1. MySQL Driver

    • 作用:MySQL数据库驱动,用于连接MySQL数据库。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
          <scope>runtime</scope>  <!-- 运行时生效 -->
      </dependency>
  2. MyBatis Framework

    • 作用:轻量级ORM框架,简化数据库操作,支持XML或注解方式编写SQL。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>3.0.3</version>  <!-- 版本需与Spring Boot兼容 -->
      </dependency>
  3. Spring Data JPA

    • 作用:基于JPA的持久层框架,通过注解自动生成SQL,简化CRUD操作,适合快速开发。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
  4. Redis

    • 作用:操作Redis缓存数据库,用于提升读取性能(如会话存储、热点数据缓存)。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-redis</artifactId>
      </dependency>

三、工具类依赖

  1. Lombok

    • 作用 :通过注解(如@Data@Getter)自动生成实体类的getter/setter、构造函数等,减少模板代码。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>  <!-- 避免传递依赖 -->
      </dependency>
    • 注意:需在IDE中安装Lombok插件才能正常使用。

  2. Spring Boot DevTools

    • 作用:开发工具,支持热部署(修改代码后自动重启),提升开发效率。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
          <optional>true</optional>
      </dependency>

四、测试依赖

  1. Spring Boot Starter Test
    • 作用:整合JUnit、Mockito等测试框架,支持单元测试和集成测试。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>  <!-- 仅测试环境生效 -->
      </dependency>

五、安全依赖

  1. Spring Security
    • 作用:提供身份认证、授权、防CSRF等安全功能,保护接口访问。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-security</artifactId>
      </dependency>

六、其他常用依赖

  1. Thymeleaf

    • 作用:模板引擎,用于开发动态HTML页面(适合前后端不分离场景)。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
  2. Validation

    • 作用 :提供参数校验功能(如@NotNull@Size),简化输入验证逻辑。

    • Maven坐标

      xml 复制代码
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-validation</artifactId>
      </dependency>

依赖管理建议

  • 使用Spring Initializr创建项目时,可直接勾选所需依赖,工具会自动处理版本兼容性。
  • 避免引入不必要的依赖,减少项目体积和冲突风险。
  • 版本号通常由spring-boot-dependencies统一管理,无需手动指定(特殊情况除外)。

根据项目类型(如REST接口服务、后台管理系统、微服务等)选择合适的依赖组合,可显著提升开发效率。

相关推荐
記億揺晃着的那天2 分钟前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
掘金码甲哥7 分钟前
3min手搓一个帮助文档站,很合理吧!
后端
JAVA面经实录91711 分钟前
Java 数据结构与算法 (终极完整学习文档)
java·数据结构·算法
llz_11228 分钟前
web-第四次课后作业
前端·spring boot·web
JAVA面经实录9171 小时前
操作系统面试题
java·服务器·数据库·计算机网络·面试
一杯奶茶¥2 小时前
基于springboot的失物招领管理系统带万字文档 校园失物招领管理系统 失物认领管理系统java springboot vue
java·vue.js·spring boot·java项目
不能只会打代码2 小时前
边缘视频分析平台的架构设计与性能优化——从750ms到190ms的调优之路
java·spring boot·redis·性能优化·边缘计算·物联网竞赛
小刘|2 小时前
Spring AI Alibaba 集成和风天气 API 实战
java·服务器·前端
KANGBboy2 小时前
java知识五(继承)
java·开发语言
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第117题】【并发篇】第17题:线程有几种状态,之间如何转换?
java·开发语言·面试