Skip to content

Spring Boot

v3.x
Java

概述

Spring Boot 是基于 Spring 框架的企业级应用开发框架,简化了 Spring 应用的初始搭建和开发过程。它采用"约定优于配置"的理念,让开发者能够快速创建独立运行的、生产级别的应用程序。

为什么选择 Spring Boot?
  • 工业标准:Java 生态最成熟的企业级框架
  • 生态丰富:Spring Cloud、Spring Security 等配套完善
  • 性能优秀:经过大量生产环境验证
  • 文档完善:社区活跃,资料丰富

技术特性

特性说明
编程语言Java 17+ / Kotlin
架构模式MVC / 分层架构 / 依赖注入
ORM 支持MyBatis Plus (推荐), Spring Data JPA, Ktorm
数据库PostgreSQL, MySQL, SQLite
性能评分★★★★★
学习曲线中等(需要 Java 基础)
API 文档SpringDoc / Swagger 自动生成
认证方案Sa-Token, Spring Security

语言选择

Spring Boot 支持两种 JVM 语言:

语言特点推荐场景
Java语法熟悉、生态成熟、招聘容易大型企业项目、团队协作
Kotlin语法简洁、空安全、协程支持现代化项目、追求开发效率
语言建议
  • 如果团队熟悉 Java 或项目需要长期维护,选择 Java
  • 如果追求开发效率或个人项目,可选择 Kotlin

生成的项目结构

ThesisAI 生成的 Spring Boot 项目遵循标准的分层架构:

backend
src
main
java/com/example/demo
common // 公共模块
config // 配置类
exception // 全局异常处理
response // 统一响应封装
utils // 工具类
modules // 业务模块
auth // 认证模块(可选)
controller
service
dto
user // 用户模块
controller
service
mapper // MyBatis Mapper
entity // 实体类
dto
[业务模块] // 根据需求生成
Application.java // 启动类
resources
application.yml // 主配置
application-dev.yml // 开发环境配置
application-prod.yml // 生产环境配置
mapper // MyBatis XML
test // 测试代码
Dockerfile
docker-compose.yml
pom.xml // Maven 配置

ORM 选择

Spring Boot 支持多种 ORM 框架:

MyBatis Plus(推荐)

Mybatis MyBatis Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变。

优势

  • SQL 完全可控,复杂查询自由
  • 代码生成器,减少样板代码
  • 中国用户群体大,中文文档友好
UserMapper.java

Spring Data JPA

Jpa JPA 是 Java 持久化 API 规范,Spring Data JPA 让使用更加简单。

优势

  • 对象关系映射自动化
  • 方法名自动生成查询
  • 跨数据库迁移容易
UserRepository.java

Ktorm(Kotlin 专属)

Ktorm 是 Kotlin 原生的 ORM 框架,提供类型安全的 DSL 风格 API。

优势

  • Kotlin 原生,类型安全
  • DSL 风格,代码简洁
  • 轻量级,无反射
UserTable.kt

认证方案

Sa-Token(推荐)

Sa-Token 是一个轻量级 Java 权限认证框架,上手简单,功能强大。

AuthController.java

Spring Security

Spring Security 是 Spring 官方提供的安全框架,功能完善但配置较复杂。

开发环境

环境要求

依赖版本要求说明
JDK>= 17推荐 Eclipse Temurin
Maven>= 3.8构建工具
数据库-SQLite 无需安装,MySQL/PostgreSQL 需独立服务

环境变量 / 配置

变量名说明必填
spring.datasource.url
默认值: jdbc:sqlite:./dev.db
数据库连接 URL
spring.datasource.username
默认值: -
数据库用户名
spring.datasource.password
默认值: -
数据库密码
sa-token.token-name
默认值: Authorization
Token 名称
sa-token.timeout
默认值: 86400
Token 有效期(秒)
server.port
默认值: 8080
服务端口

数据库连接配置示例

application.yml

启动开发服务器

bash
        $
        ./mvnw spring-boot:run
      

或使用 IDE 直接运行 Application.java

服务启动成功
  • API 地址: http://localhost:8080
  • Swagger 文档: http://localhost:8080/swagger-ui.html

代码示例

Controller 示例

UserController.java

Service 示例

UserServiceImpl.java

部署

Docker 部署

bash
        $
        docker build -t backend .
      
bash
        $
        docker run -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod backend
      

生产构建

bash
        $
        ./mvnw clean package -DskipTests
      
bash
        $
        java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
      
生产环境注意事项
  1. 使用生产环境配置文件 application-prod.yml
  2. 配置合适的数据库连接池参数
  3. 启用 HTTPS
  4. 配置日志级别和日志文件

常见问题

Q: Maven 下载依赖很慢?

配置阿里云 Maven 镜像:

settings.xml

Q: 如何添加新的业务模块?

  1. modules 目录下创建新包
  2. 创建 Entity、Mapper、Service、Controller
  3. 如使用 MyBatis Plus,Mapper 继承 BaseMapper

Q: MyBatis Plus 和 JPA 如何选择?

  • MyBatis Plus:适合需要手写复杂 SQL、对性能要求高的场景
  • JPA:适合 CRUD 为主、希望快速开发的场景

相关资源

Released under the MIT License.