什么是 ContiNew Starter
ContiNew Starter 是什么、从何而来(源自 ContiNew Admin 的能力抽离)、解决什么问题与包含哪些模块。
ContiNew Starter(Continue New Starter)基于“约定优于配置”理念,进一步精简常规配置,提供完整的配置解决方案,帮助开发人员更快速地将常用第三方库或工具集成到 Spring Boot Web 应用程序中。
它封装了一系列经过企业实践验证的依赖包(如 MyBatis-Plus、Sa-Token、Redisson、JetCache 等),可轻松集成到应用中,减少开发人员手动引入依赖及配置的工作量,为 Spring Boot Web 项目的灵活快速构建提供支持。
项目起源
ContiNew Starter 源自 ContiNew Admin 后台管理框架项目。随着 ContiNew Admin 的发展,作者发现初学者需要关注过多的脚手架通用基础能力,且在新项目中复用这些能力时存在迁移困难的问题。于是,ContiNew Starter 应运而生,作者在 ContiNew Admin 2.x 版本时,将项目中的通用基础能力进行了抽离并深度优化。这样,无论是在 ContiNew Admin 中使用,还是单独使用这些基础能力,都可以更加轻松。
解决什么问题
在开发一个 Java Web 项目之前,我们可能需要做如下准备工作:
- 引入 Spring Boot 父项目进行版本锁定(无 Spring 不 Java)。
- 引入 Spring Boot Web 依赖。
- 根据需求引入不同组件的 Starter。
- 针对引入的 Starter 进行配置(查阅文档或通过搜索引擎查找常用配置):
- 编写 Java 配置;
- 编写 application.yml 配置。
- 编写各类全局处理器。
- 开始业务开发。
在 Spring Boot “约定优于配置” 理念的帮助下,我们开发一个 Spring Java Web 程序已经简化到了不可思议的程度,而且很多设计良好的组件 Starter 提供了极大的扩展性,提供了非常多的配置,给使用者最大的可行性,当你需要处理一些自定义场景时,这些配置简直是太过方便。
然而,高度扩展性也带来了配置复杂性,新手用户在初次使用组件时往往需要花费大量精力在配置上。因此,各种脚手架项目应运而生,你可能会想,这基础配置关脚手架项目什么事?脚手架项目的作用不仅仅是提供一系列通用基础功能,更多的是提供了一种通用的解决方案,无论是针对所使用组件的配置,还是实现的某个功能的设计,亦或是开发规范。即使是初学者,把脚手架项目拿过来,只需要删减不需要的功能,修改品牌元素,就可以继续在其基础上进行开发一个成熟的项目。
ContiNew Starter 将脚手架项目中的通用基础配置进行封装与深度优化,从企业实践角度精简配置,使新项目或已有项目在使用这些组件时更加便捷。
落到实现上是四件事:
- 统一的依赖管理:全部第三方依赖版本由
continew-starter-dependencies统一供给,你无需关心版本号,也无需担心组件间的版本冲突; - 开箱即用的自动配置:每个模块通过 Spring Boot 3 的
AutoConfiguration.imports机制注册,引入即生效,无需手写配置类; - 约定优于配置:合理的默认值让你多数情况下「零配置」可用,需要定制时再以
continew-starter.<module>前缀的属性覆盖; - 企业实践验证:封装的组件与默认参数来自真实企业项目实践,而非简单包装。
模块总览
ContiNew Starter 是一个多模块 Starter 库,按功能划分为以下模块(点击可查看对应文档)。聚合模块以 -core 子模块定义接口与通用逻辑,-mp / -mf 提供特定 ORM 实现,按需选择。
core
核心:常量、PropertiesConstants、通用工具
web
Web:跨域、全局异常与响应、链路追踪
validation
参数校验:Hibernate Validator
json
JSON:Jackson 序列化
api-doc
接口文档:Spring Doc + NextDoc4j
auth
认证:Sa-Token / JustAuth / Refresh Token
cache
缓存:Redisson / JetCache / Spring Cache
data
数据访问:MyBatis Plus / MyBatis Flex
encrypt
加密:字段加密 / API 加密 / 密码编码
security
安全:脱敏 / XSS / 敏感词
captcha
验证码:图形 / 行为
ratelimiter
限流
idempotent
幂等
trace
链路追踪
log
日志:AOP / 拦截器
messaging
消息:邮件 / WebSocket / MQTT
excel
Excel:FastExcel / POI
storage
存储:本地 / 对象存储(S3)
license
License:生成器 / 校验器
extension
扩展:CRUD / 数据权限 / 租户
环境要求
| 要求 | 版本 |
|---|---|
| JDK | 17+(使用方运行时;本仓库自身构建基线为 JDK 25,产物字节码 Java 17) |
| Spring Boot | 3.x |
| 构建工具 | Maven 3.9+(或等效 Gradle) |
ContiNew Starter 2.x 基于 Spring Boot 3.x 与 JDK 17。仍在使用 Spring Boot 2.x 的项目请参考历史版本文档。