系统使用雪花算法作为主键ID,使ID具有更好的通用性,如防止ID被预测、防止泄露数据量、手动插入数据时防止ID重复等。
对于自定义字段,之前版本只可以在前台进行搜索,本次更新允许在后台管理界面的列表中显示自定义字段,以及在后台使用自定义字段作为搜索条件。进一步完善了自定义字段的功能。
工作流部分则更新更多高级功能。
更新日志
- 自定义字段后台列表可显示、查询
- 主键改用雪花算法
- 新增高级工作流设计器
- 新增审核退回功能
- 新增审核代理功能
- 新增审核委托功能
- 新增组织权限功能
- 新增自定义表单功能
简介
Java开源网站内容管理系统(java cms)、Java建站系统。使用SpringBoot、MyBatis、Spring Security、Lucene、FreeMarker、TypeScript、Vue3、ElementPlus等技术开发。使用Apache-2.0开源协议,可免费用于商业网站。
支持无头CMS,可使用模板(Freemarker)+标签或Vue(React)+API方式制作网站。支持自定义字段及字段可视化设计,自定义字段在前后端均可作为搜索条件。
技术上尽量选择主流、先进、简单的架构,方便用户进行二次开发。设计上强调“简单”、“灵活”,避免繁杂的设计和实现,降低系统维护成本和二次开发难度。功能使用上也要求“简单”,避免复杂的使用逻辑。
技术及功能亮点
自定义字段:文章、栏目等模块支持自定义字段,方便满足客户的不同需求。
自定义字段可查询:支持自定义字段,且所有的自定义字段都可查询,极大地增强了系统的灵活性。
自定义字段可视化设计:自定义字段使用拖拽式的可视化设计,所见即所得。
MyBatis 参数化查询:数据通常会需要通过不同字段进行搜索,对每个表都写大量的查询,无疑是一项繁重的工作。MyBatis 参数化查询功能通过前台传递查询参数,即可实现任意字段及关联表的查询功能(如:Q_title=abc,Q_user-username=test),无需后台编写代码,大幅减少后端的开发工作量。后台开发和前台标签(API)均可使用参数化查询,因此标签(API)几乎可以实现任意查询效果。
URL 地址 SEO 优化:栏目和文章的动态地址可以通过系统的全局设置功能进行修改。默认的栏目和文章 URL 地址前缀为 /channel 和 /article,可以根据自己的需要修改,如改为 /categories 和 /archives。多站点的情况下,子站点 URL 地址可为目录形式 (www.example.com/abc) 或次级域名形式 (abc.example.com)。
清理垃圾附件:系统使用时,可能会多传、误传图片等附件;在删除文章后,文章中的图片还保留在系统中,产生大量的未使用的垃圾图片和附件。系统中的附件管理可以查看所有未使用的图片和附件,并可对其进行删除。
附件、模板、索引文件独立部署:系统运行时产生的文件可以和程序分开,部署到独立的目录,方便系统备份、升级和管理。比如上传的图片和附件、前台的模板、索引文件,都可以部署到程序以外的目录。
模板文件和 CSS、JS 在同一目录:模板文件和 CSS、JS 分开的目录结构,会给模板制作和部署带来很大的不便性。而将模板文件和 CSS、JS 放在一起的设计,会方便很多。
主副表拆分:对查询量大的复杂表进行主副表拆分,把常用查询字段放到主表,不常用的字段放到副表,提升大数据量下的性能表现。
后端技术
- SpringBoot:提供了对 Spring 开箱即用的功能。简化了 Spring 配置,提供自动配置 auto-configuration 功能。
- SpringMVC:MVC 框架,使用方便,Bug 较少。
- SpringSecurity:安全组件。
- Mybatis:持久化框架。
- FreeMarker:网站前台模板引擎。
- Lucene:全文检索组件。
- Liquibase:数据库跟踪、管理工具。
前端技术
- Vue 3:JavaScript 框架。
- ElementPlus 2:Vue 3 UI 框架。
- Vite: 下一代前端开发与构建工具。
- TypeScript: JavaScript 的一个超集。
- TailwindCSS: 功能类优先的 CSS 框架。
- Tinymce: 富文本编辑器。
功能列表
- 内容
- 文章管理
- 文章审核
- 栏目管理
- 区块管理
- 字典管理
- TAG 管理
- 附件管理
- 生成管理
- 互动
- 文件
- 配置
- 全局设置
- 站点设置
- 模型管理
- 区块设置
- 字典设置
- 留言类型
- 统计
- 用户
前台模板
![]()
后台界面
![]()