前言
1. 技术及框架
1.1 开发/运行环境
- JDK 1.8
- Maven 3.5
- Mysql 5.7(可选,非必须)
- ElasticSearch 7.10.1(可选,非必须)
- Redis 5.0(可选,非必须)
1.2 后端框架
- SpringBoot 2.6.1 底层框架
- wm 开发框架 ,CMS 的底层技术框架支持,像是数据库操作、权限等
文件上传组件 ,两行代码实现文件上传。2 分钟对接使用,从此无论本地存储、分布式存储、对象存储……都是完全一样的代码调用 - 日志组件 ,日志存储及读取,快速实现写日志、读取日志,大量日志数据的持久化存储。
- 网络请求组件 ,java8+,几 KB,无三方依赖的 http、https 请求工具。
- 自动写代码组件 ,代码生成器,设计好数据表,不用花时间学习怎么用,无需配置,直接右键运行,勾选上表、字段,自动写出规范化代码。
- 分页组件 ,java 分页工具,8KB 大小,无三方依赖。
- 缓存组件 ,缓存工具,可通过配置快速切换使用 java map、还是使用 redis 作为缓存。
- 短信发送,java 发送短信,一行代码接入,可任意切换多家短信通道
1.3 前端框架
- layui 2.x
- 消息提醒 msg.js ,轻量级 js 消息提醒组件,加载中、成功提示、失败提示等,引入 msg.js,一句调用,无三方依赖
- 网络请求 request.js ,js ajax请求,纯js,不依赖任何其他框架
- 多语言翻译 translate.js,两行 js 实现 html 全自动翻译,页面无需改动,无语言配置文件,无 API Key,对 SEO 友好!
2. 编码格式
- 程序代码的编码格式使用 UTF-8
- Mysql 中编码使用 utf8mb4
3. wangmarket_deploy 应用组成说明
线上运行的应用,当对 wangmarket_deploy 进行 mvn clean package 打包后 ( 也或者在部署到线上tomcat中时),会发现其中就只有一个 WEB-INF 目录,它的核心就是 WEB-INF/lib/ 下的 jar包。 其中将有关的进行介绍:
- wangmarket-xxxx.jar wangmarketCMS的核心支持包,它是CMS本身最核心应用,包括模板体系、栏目及内容管理、绑定域名等。它的源码仓库为 gitee.com/mail_osc/wangmarket
- wangmarket-plugin-xxxx.jar 功能插件包,每个包都是一个单独的功能插件。详细可参考 www.wang.market/plugin.html
- wm-xxxx.jar 一些常用工具及方法基础支撑的包,也就是上面 1.2 中wm。在本CMS中,像是总管理后台中的用户管理等,便是这个提供。在后面如果要进行二次开发及扩展,这个包基本上应该是不会用到,不需要进行改变及重写的。有关此包详细可参考 wm.zvo.cn
这样的优势便是当进行版本更新时,直接针对某个具体 jar 进行增量更新替换,即可完成整个系统的更新迭代。
4. 二次开发说明
4.1 开发及修改方式的优先级
- 应优先考虑以功能插件形式接入 - 对后续版本更新迭代无任何不良影响
- 重写原本wangmarket项目中某个文件的方式 - 可进行后续版本更新迭代,但有可能会有一点点影响,出现的几率非常小。如果出现了,需要跟随进行调整一下就好
- 直接重写wangmarket,修改 wangmarket 本身,然后进行打jar包替换 - 无法再进行后续版本更新迭代
4.2 二次开发为什么拉的是 wangmarket_depoly 这个仓库,而不是 wangmarket 本身
- 利于升级。当系统发布新版本后,只需对指定几个有改动的jar进行增量更新即可完成升级。
- wangmarket 本身就只是一套单纯的CMS内容管理系统,主要包含模板体系及栏目、内容管理。像是一些对用户来说可能会用到,也可能会用不到的功能,都做成了插件形式存在,如 网站子账号、网站跟后台分离部署存放、网站开放API、表单反馈(留言) 等等,目的便是用户在用到哪些功能时,可以进行这些功能插件的安装。而用不到时,那就只部署最基本的wangmarket CMS,进行内容管理操作。避免未来随着版本更新及功能扩展,使项目本身越来越庞大、臃肿。 而 wangmarket_depoly 便是对所有模块进行了整合。
- 不少情况下的改动,可能更多是单纯展示界面的改动,而单纯界面改动,需要改哪些页面,只需对其进行重写、覆盖即可,如此完全不影响后面的升级更新迭代。 此种修改操作参考: 扩展-重写指定文件的形式
- 增加一些当前CMS所没有的功能,这方面以插件方式进行增加,不会对本身CMS造成什么改动,不会影响CMS本身的升级。
4.3 直接针对wangmarket仓库进行修改,有什么不好的影响
会导致无法跟随wangmarket CMS 的版本进行升级,将会形成一个独立的分支。CMS系统本身随着使用,会有一些漏洞或缺陷也会被暴露出,而无法跟随升级,存在漏洞不及时修复,显然是不好的,使用上是有隐患的。
5. 进行二次开发扩展的步骤
- 本地环境及 Eclipse导入git项目步骤 | idea导入git项目
- 配置 Mysql 数据库(可选)
- 本地运行,跑起项目
- 您可从以下三种之中,选择某种适合的开发扩展方式