初始化springboot项目依赖选择
在初始化Spring Boot项目时,选择依赖是关键步骤,需根据项目需求决定。以下是分场景的依赖选择指南:
1. 基础能力依赖
| 依赖名称 | 作用 | 适用场景 |
|---|---|---|
Spring Web |
支持RESTful API开发(含Tomcat) | 所有需要HTTP接口/前端交互的项目 |
Spring Data JPA |
数据库ORM(搭配数据库驱动) | 需操作SQL数据库(MySQL/PostgreSQL等) |
Spring Data MongoDB |
MongoDB支持 | 使用NoSQL数据库MongoDB |
Spring Security |
认证授权、安全控制 | 需登录/权限管理的系统 |
Spring Boot Actuator |
应用监控端点(/health, /metrics等) | 生产环境监控需求 |
2. 开发提效工具
| 依赖名称 | 作用 |
|---|---|
Lombok |
自动生成Getter/Setter/构造器等,减少样板代码 |
Spring Boot DevTools |
热部署、自动重启(开发环境专用) |
Validation |
参数校验(@Valid, @NotNull等注解) |
3. 特定功能场景
(1) 消息队列
- RabbitMQ:
Spring AMQP/RabbitMQ - Kafka:
Spring for Apache Kafka
(2) 缓存
- Redis:
Spring Data Redis - 内存缓存:
Spring Cache+Caffeine
(3) 微服务
| 组件 | 依赖 |
|---|---|
| 服务注册发现 | Eureka Client / Consul |
| 配置中心 | Spring Cloud Config |
| 熔断降级 | Resilience4j / Sentinel |
| 网关 | Spring Cloud Gateway |
(4) 批处理
- 定时任务:
Spring Scheduler - 批处理作业:
Spring Batch
4. 数据库驱动 (搭配Spring Data JPA使用)
| 数据库 | 依赖 |
|---|---|
| MySQL | mysql-connector-java |
| PostgreSQL | postgresql |
| Oracle | com.oracle.database.jdbc:ojdbc11 |
5. 初始化模板推荐
(1) 基础Web项目
<!-- pom.xml 示例 -->
<dependencies>
<!-- 核心依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 开发工具 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
(2) 微服务项目 (含注册中心)
<dependencies>
<!-- Web基础 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 服务注册 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 配置中心客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
6. 选择工具建议
- Spring Initializr:官方初始化工具,勾选依赖自动生成项目,阿里地址:https://start.aliyun.com/
- IDE集成工具:
- IntelliJ IDEA:
New Project → Spring Initializr - VS Code: 安装
Spring Boot Extension Pack插件 - Eclipse: 通过
Spring Starter Project向导创建
- IntelliJ IDEA:
关键原则
- 按需引入:避免添加无用依赖(减少包体积/安全风险)
- 注意兼容性:Spring Boot版本需与依赖版本匹配(官方版本映射)
- 生产环境优化:
- 移除
DevTools - 用
spring-boot-starter-jetty替换Tomcat(如需) - 添加
Spring Boot Actuator+Micrometer监控
- 移除
提示:不确定需求时,可先创建基础项目,后期在
pom.xml/build.gradle中追加依赖。
组合:
Spring Web # 提供 REST 接口能力
MyBatis Framework # 数据访问层(你也可以用 JPA)
Lombok # 简化实体类
Spring Boot DevTools # 热部署
MySQL Driver # 数据库连接驱动
Spring Configuration Processor # yml提示增强
Validation # 参数校验注解支持
Spring Security # 后期需要鉴权就勾上
Spring Data Redis # 做缓存、告警频控等必备
WebSocket #实时消息

浙公网安备 33010602011771号