技术栈
MootingBackend 使用的完整技术栈说明。
核心框架
Spring Boot 4.0.2
Spring Boot 是项目的基础框架,提供:
- 自动配置
- 内嵌 Tomcat 服务器
- Starter 依赖管理
- Actuator 监控
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.2</version>
</parent>Spring Data JPA
数据访问层使用 Spring Data JPA + Hibernate:
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>特性:
- Repository 接口自动实现
- 查询方法命名约定
- 分页和排序支持
- 事务管理
Spring Security
安全框架,用于认证和授权:
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>配置要点:
- CSRF 禁用(API 服务)
- 无状态会话
- JWT 过滤器集成
数据库
SQL Server 2022
Microsoft SQL Server 作为主数据库:
xml
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>连接配置:
properties
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=user_system;encrypt=true;trustServerCertificate=true;
spring.jpa.database-platform=org.hibernate.dialect.SQLServerDialect认证授权
JWT (jjwt)
JSON Web Token 实现无状态认证:
xml
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.6</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.12.6</version>
<scope>runtime</scope>
</dependency>JWT 配置:
| 参数 | 值 | 说明 |
|---|---|---|
| 算法 | HS256 | HMAC SHA-256 |
| 有效期 | 24 小时 | 可配置 |
| 密钥长度 | 256 位 | 生产环境需更换 |
BCrypt
密码加密使用 Spring Security 内置的 BCrypt:
java
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}第三方服务
邮件服务 (SMTP)
使用 Spring Boot Mail Starter:
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>支持的 SMTP 服务:
- 飞书 (smtp.feishu.cn)
- 腾讯企业邮箱
- 阿里云邮件推送
- AWS SES
短信服务 (阿里云)
阿里云短信 SDK:
xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.2.1</version>
</dependency>开发工具
Lombok
减少样板代码:
xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>常用注解:
@Data- Getter/Setter/ToString/Equals/HashCode@Builder- 建造者模式@Slf4j- 日志记录@NoArgsConstructor/@AllArgsConstructor
Maven
项目构建工具:
bash
# 编译
mvn clean compile
# 打包
mvn clean package
# 运行
mvn spring-boot:run
# 跳过测试打包
mvn clean package -DskipTests依赖版本总览
| 依赖 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 4.0.2 | 应用框架 |
| Java | 17 | 运行环境 |
| jjwt | 0.12.6 | JWT 处理 |
| SQL Server JDBC | 最新 | 数据库驱动 |
| Aliyun SMS SDK | 2.2.1 | 短信服务 |
| Lombok | 最新 | 代码简化 |