Skip to content

技术栈与架构选型

ArchSmith 采用现代技术,每项选择都有清晰的考量。

运行时

技术版本选型理由
JDK25 (Azul Zulu)ScopedValue、结构化并发、模式匹配、Stream Gatherers、虚拟线程
Spring Boot4.0.5Spring Framework 7、Jakarta EE、Observation API、ProblemDetail (RFC 9457)
Gradle9.4.1配置缓存、Kotlin DSL、java-platform 实现 BOM

数据库与存储

技术版本选型理由
PostgreSQL17GENERATED ALWAYS AS IDENTITY、高级 JSON 支持、行级安全
Flyway11.14版本化的数据库结构迁移,支持可重复和回退脚本
Redis7会话缓存、限流、分布式锁
Dynamic Datasource4.5.0主从路由、@DS 注解、JPA 组代理
AWS S3 SDK2.31文件存储抽象(开发环境配合 RustFS 使用)

Web 与 API

技术版本选型理由
Spring Security7.xSecurityFilterChain、JWT 认证、RBAC
SpringDoc OpenAPI2.8自动生成 Swagger UI、Schema 校验
Jackson2.21JSON 序列化、自定义转换器、敏感数据脱敏
MapStruct1.6编译期类型安全的 DTO 映射,零反射

可观测性

技术版本选型理由
Micrometer1.16统一指标 API,Observation 整合指标+链路追踪+日志
OpenTelemetry1.55分布式链路追踪、OTLP 导出
Log4j2(Boot 管理)异步日志、结构化输出、Spring Profile 支持
Spring Actuator4.0健康检查、Prometheus 指标端点

代码质量

技术版本选型理由
Spotless8.4构建时强制执行 Google Java Style (AOSP)
google-java-format1.35团队统一的代码格式
JSpecify1.0标准空安全注解(@NullMarked、@Nullable)
Lombok1.18减少样板代码(@Data、@Builder、@RequiredArgsConstructor)

测试

技术版本选型理由
JUnit6.0 (Jupiter)现代断言、参数化测试
Spock2.4 (Groovy 5)BDD 风格规范、数据驱动测试、Mock
Testcontainers2.0开发/测试环境自动配置 PostgreSQL、Redis、RustFS
RestClient(Spring 内置)针对运行中应用的集成测试

前端

类别技术版本用途
框架Vue3.5响应式 UI 框架
构建Vite8新一代前端构建工具
语言TypeScript6类型安全的 JavaScript
UI 库Element Plus2.13企业级 UI 组件
状态管理Pinia3Vue 3 状态管理
路由Vue Router5SPA 路由
CSSTailwindCSS4原子化 CSS 框架
HTTPAxios--带拦截器的 HTTP 客户端
国际化vue-i18n--多语言支持
基础模板vue-pure-admin--企业级后台管理模板

部署

技术选型理由
Docker + jlink最小化 JRE(约 60MB,完整 JDK 约 300MB)
Project Leyden CDSAOT 缓存加速启动
Liberica NIK 25Native Image 选项,实现即时启动
Nginx反向代理、静态文件服务、SSL 终止

使用的 JDK 25 特性

特性使用位置收益
ScopedValueScopedValueContext替代 ThreadLocal,虚拟线程安全,自动清理
结构化并发ServerMonitorService并行采集系统信息,生命周期可控
模式匹配 switchJsonUtil、ErrorHandler、ResultValueWrapper更简洁的类型分派,穷举检查
Stream GatherersCollectionUtils.partition()内置窗口操作,无需外部依赖
虚拟线程application.yaml可扩展的 I/O 密集型并发
JSpecify 空安全包级别 @NullMarked编译期空值检查

相关页面

Released under the MIT License.