Java 后端框架与常用依赖
技术栈概览
| 技术领域 | 相关技术 | 主要作用 |
|---|---|---|
| Java 基础环境 | Java 17 | 提供 Java 后端程序的编译和运行环境 |
| 核心开发框架 | Spring Framework | 提供 IoC、DI、AOP、事务管理等基础能力 |
| 应用开发框架 | Spring Boot | 简化 Spring 应用的配置、依赖管理、启动和部署 |
| Web 开发 | Spring MVC | 负责 HTTP 请求处理、参数绑定、控制器调用和响应数据返回 |
| 数据持久化 | MyBatis | 负责 Java 对象与 SQL 语句之间的映射 |
| 持久层增强 | MyBatis-Plus | 在 MyBatis 基础上提供通用 CRUD、条件构造器和分页等功能 |
| 关系型数据库 | MySQL | 用于存储和管理业务数据 |
| 数据库连接池 | Druid | 管理数据库连接,并提供连接池监控和 SQL 统计等功能 |
| 安全认证 | Spring Security | 实现用户认证、权限控制和请求安全管理 |
| 身份令牌 | JWT、JJWT | 实现基于令牌的无状态身份认证 |
| 接口文档 | OpenAPI、Knife4j | 自动生成接口文档,并提供接口查看和在线调试功能 |
| JSON 处理 | Jackson | 完成 Java 对象与 JSON 数据之间的转换 |
| 日志管理 | SLF4J、Logback、Log4j 2 | 记录程序运行状态、调试信息和异常信息 |
| 代码简化 | Lombok | 通过注解减少 Getter、Setter、构造方法等重复代码 |
| 接口设计 | RESTful | 使用 HTTP 方法和资源路径规范设计后端接口 |
| 项目构建 | Maven | 管理项目依赖,并完成编译、测试、打包等构建任务 |
| 开发辅助 | Spring Boot DevTools | 提供自动重启等开发阶段辅助功能 |
| 测试支持 | Spring Boot Test | 提供单元测试和集成测试所需的相关组件 |
Spring Boot 项目
Maven 项目配置
<?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.3.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hyxy</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- Spring MVC、REST Controller、内置 Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 配置提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- SpringBoot3 适配核心依赖 -->
<!-- MyBatisPlus 适配SpringBoot3 专属依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.6</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.23</version>
</dependency>
<!-- lombok 简化实体类 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- SpringBoot3 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.12.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
数据库配置
在 src/main/resources/application.yml 中配置 MySQL、Druid 和 MyBatis-Plus。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://localhost:33066/java2601?serverTimezone=UTC&characterEncoding=utf8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
max-active: 10
min-idle: 3
initial-size: 2
max-wait: 10000
mybatis-plus:
# xml映射文件的位置
mapper-locations: classpath*:/mapper/**/*.xml
# 实体类别名 包
type-aliases-package: com.hyxy.mp.entity
configuration:
# 开启下划线转驼峰自动映射
map-underscore-to-camel-case: true
# 开启SQL日志打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
# 主键自增策略
id-type: auto
# 数据库表前缀(可选)
# table-pre x: tb_
# 逻辑删除全局配置
# logic-delete-field: deleteFlag
# logic-delete-value: 1 # 已删除
# logic-not-delete-value: 0 # 未删除
# Knife4j 核心配置(SpringBoot3 通用)
knife4j:
# 开启增强模式(解锁全部高级功能,必开)
enable: true
# 生产环境开关(true=生产关闭文档,false=开发开启)
production: false
# UI个性化配置
setting:
# 开启暗黑模式
enable-dark-mode: true
# 开启接口搜索
enable-search: true
# 显示参数长度
enable-param-length: true
# 开启接口显示排序
enable-api-sort: true
jwt:
secret: l06rIAxOHwGDnjGUvN5XhVIyW4PGQzy4Eff+GFwZTA=
expire-ms: 3600000
喜欢的话,留下你的评论吧~