Skip to content

技术栈

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 配置:

参数说明
算法HS256HMAC 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 Boot4.0.2应用框架
Java17运行环境
jjwt0.12.6JWT 处理
SQL Server JDBC最新数据库驱动
Aliyun SMS SDK2.2.1短信服务
Lombok最新代码简化

下一步

Mooting 开发者文档