因为项目目前定义为单体且以简单易上手为主,所以采用的技术栈相对通用、易用,有其他需求的同学可留言,在有能力的情况下会进行集成 Demo.
| 技术栈 | 版本 |
|---|---|
| JDK | 21 |
| Spring Boot | 3.2.5 |
| PostgreSQL | 16 |
| MyBatis Plus(ORM 框架) | 3.5.7 |
| Redis(外置缓存) | 7 |
| Redisson (Redis 高级客户端) | 3.25.0 |
| SaToken(轻量鉴权框架) | 1.38.0 |
| MapStruct(实体映射工具,非必需) | 1.5.5.Final |
根据个人习惯,用生成器或 IDE 工具初始化项目,或创建 Maven 工程后手动添加依赖。
Spring 官方项目初始化工具 start.spring.io ,阿里云初始化工具 start.aliyun.com,网络环境不佳的同学可选择阿里云工具创建。

阿里云应用脚手架对每一项描述较为清晰,不多复述


不同工具初始化目录结构可能略有差异
├─src │├─main │ ├─java │ │ └─com │ │ └─bootemp │ │ └─boot3 │ │ └─Boot3Application.java---- // 项目启动类 │ └─resources │ └─application.properties--------- // 项目默认配置文件 └─test------------------------------- // 单元测试 └─pom.xml------------------------------ // Maven 工程文件 合适的项目结构有利于项目后期的维护,不同的项目结构适合不同的开发团队和开发习惯,仅个人习惯。
├─.gitignore ├─docs------------------------------ // 项目文档,如SQL、项目部署文档,UML等 ├─pom.xml └─src └─main └─java └─cn └─yiyanc ├─common------------------ // 项目通用组件(工具类,常量等) ├─config------------------ // 项目配置 ├─service------------------ // 业务逻辑处理 ├─infrastructur---------- // 项目基础设施,如ORM、缓存服务、消息队列等基础组件 ├─MainApplication.java---- // 项目启动类 └─trigger----------------- // 项目入口 ├─common ├─http------------------ // http请求 ├─job------------------- // 任务 └─listener-------------- // 事件监听 不同的项目初始化方式,支持、生成的依赖版本各有不同,在进行项目配置前,先统一版本信息。
编辑 pom.xml 文件
4.0.0 com.bootemp boot3 0.0.1 boot3 jar 从零搭建SpringBoot 3.x项目脚手架 21 21 21 UTF-8 UTF-8 3.2.5 3.5.4.1 3.25.0 1.38.0 5.8.25 org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import org.springframework.boot spring-boot-starter-web org.postgresql postgresql runtime org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test app org.apache.maven.plugins maven-compiler-plugin 3.8.1 21 21 UTF-8 -parameters org.springframework.boot spring-boot-maven-plugin com.bootemp.boot3.MainApplication org.projectlombok lombok repackage repackage spring boot 默认配置文件为 application.properties, 个人习惯使用 yml 格式。
配置文件规划:
application.yml - 系统通用配置文件,用于引导加载不同环境配置 application-local.yml - 本地开发环境配置文件,一般在 .gitignore 添加忽略,避免个人使用习惯“污染”项目配置application-dev.yml - 开发环境配置文件application-prod - 生产环境配置文件application.yml 和 application-local.yml 文件,项目只进行最简配置,对特定参数如数据库连接池参数有要求等,请自行添加。如环境配置中存在与
application.yml相同配置会覆盖配置
server: port: 8080 servlet: context-path: /boot3 shutdown: graceful logging: file: path: ./logs level: com.bootemp: debug spring: application: name: boot3 mvc: pathmatch: matching-strategy: ant_path_matcher main: banner-mode: off spring: datasource: # 数据库驱动 driver-class-name: org.postgresql.Driver # 数据库连接地址 url: jdbc:postgresql://127.0.0.1:5432/boot3 # 数据库用户名 username: postgres # 数据库密码 password: postgres package com.bootemp.boot3.trigger.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/") public String hello() { return "Hello, SpringBoot 3.2.5!"; } } 访问测试接口

├─logs ├─pom.xml └─src ├─main │ ├─java │ │ └─com │ │ └─bootemp │ │ └─boot3 │ │ ├─common │ │ ├─config │ │ ├─infrastructur │ │ ├─MainApplication.java │ │ ├─service │ │ └─trigger │ │ ├─controller │ │ │ └─HelloController.java │ │ ├─job │ │ └─listener │ └─resources │ ├─application-local.yml │ └─application.yml └─test