SCX Projects
SCX Projects 是一组面向 Java 的轻量库。它们不是一个单体框架,而是一套可以按需组合的基础能力:应用启动、依赖注入、HTTP、WebSocket、数据访问、SQL、序列化、对象映射、定时任务、日志、数组/集合/字符串/IO 等工具。
如果你只是想写一个完整应用,通常从 SCX App X 开始;如果你只需要某一项能力,可以直接引入对应库。
GitHub
怎么选择
应用与组合
- SCX App:应用启动底座,负责配置环境、模块编排、DI 容器装配和启动/停止顺序。
- SCX App X:在 SCX App 之上组合 Web、HTTP、SQL、定时任务、日志、静态资源、自动扫描等常用应用能力。
- SCX Parent:SCX 项目的 Maven 父工程,统一 Java 版本、插件、发布、测试和格式化配置。
- SCX DI:轻量依赖注入核心,负责显式注册组件、构造函数注入、字段注入、值注入和循环依赖检测。
HTTP、Web 和 WebSocket
- SCX HTTP:HTTP 协议抽象,定义请求、响应、Header、URI、Media 读写、错误处理等模型。
- SCX HTTP X:基于 TCP 的 HTTP 客户端和服务端实现,提供
HttpServer、HttpClient 和 HTTP/1.x 读写能力。
- SCX HTTP Routing:HTTP 路由核心,支持请求匹配、路径模板、正则路径、方法匹配和路由表。
- SCX HTTP Routing X:路由扩展能力,提供静态文件、单文件、CORS、Range 请求等常见处理器。
- SCX Web:注解式 Web 路由封装,把 Java Controller 方法编译成 HTTP / WebSocket 路由。
- SCX WebSocket:WebSocket 协议层实现,处理 frame、message、close、ping/pong 和事件式读写。
- SCX WebSocket X:把 WebSocket 接入 SCX HTTP X,提供服务端升级请求和客户端连接能力。
数据访问与 SQL
- SCX Data:底层无关的数据访问抽象,提供 Repository、Query、FieldPolicy、聚合和锁查询模型。
- SCX Data SQL:把 SCX Data 的 Repository 抽象落到 SQL/JDBC 上,提供
SQLRepository、表映射、字段映射和聚合查询。
- SCX SQL:SQL/JDBC 基础库,提供 SQLClient、事务、Dialect、表结构、DDL、类型处理器和结果读取。
- SCX SQL MySQL:MySQL 方言和 MySQL 数据库相关适配。
- SCX JDBC Spy:JDBC 代理与 SQL 观察工具,用于记录 SQL、参数、结果和执行耗时。
- SCX Transaction:事务抽象,支持事务上下文、事务传播和事务执行包装。
序列化、格式和对象映射
定时、日志、终端与系统支持
通用工具
常见组合
写一个 Web 应用
通常组合:
scx-app-x
scx-web
scx-http-x
scx-http-routing-x
scx-data-sql
scx-sql-mysql
scx-scheduling
scx-logging
优先阅读 SCX App X,再按需要阅读 Web、SQL、Scheduling 的独立手册。
只写 HTTP 服务
如果不需要应用启动编排,可以直接组合:
scx-http-x
scx-http-routing
scx-http-routing-x
scx-http-x 负责启动服务,scx-http-routing 负责路由,scx-http-routing-x 提供静态文件、CORS、Range 等常用处理器。
只做对象序列化
通常直接用:
它已经组合了对象映射、JSON、XML 和 Node。只有在你需要自定义底层格式或自定义 Node 映射时,才需要深入看 scx-object-x、scx-format-json、scx-format-xml。
只做 SQL / Repository
如果希望业务层面向 Repository,可以从:
开始。它会进一步使用 scx-data 的抽象和 scx-sql 的 JDBC 能力。
如果你只想手写 SQL 并管理连接、事务、结果映射,则直接看 SCX SQL。