jflyfox / jfinal_cms
jflyfox/jfinal_cms
jfinal cms是一个基于Java开发的功能强大的信息咨询网站,采用JFinal作为Web框架,Beetl模板引擎,MySQL数据库和Bootstrap前端。支持OAuth2认证、账号注册、密码加密、评论回复、消息提示、访问量统计及权限管理。后台模块涵盖栏目、文章、回复、相册、视频、缓存、友情链接、统计、模板、组织、用户、角色、菜单及数据字典管理。
项目概览
项目概述
jfinal_cms 是一个基于 Java 开发的功能强大的信息咨询网站(CMS)系统。它采用简洁强大的 JFinal 作为 Web 框架,模板引擎使用 Beetl,数据库使用 MySQL,前端使用 Bootstrap 框架。项目支持 OAuth2 认证、账号注册、密码加密、评论及回复、消息提示、网站访问量统计、文章评论数和浏览量统计、回复管理以及权限管理等功能。后台模块涵盖栏目管理、栏目公告、栏目滚动图片、文章管理、回复管理、意见反馈、我的相册、相册管理、图片管理、专辑管理、视频管理、缓存更新、友情链接、访问统计、联系人管理、模板管理、组织机构管理、用户管理、角色管理、菜单管理、数据字典管理等。
核心功能
- 内容管理:支持文章、栏目、相册、图片、专辑、视频等内容的发布与管理。
- 多站点支持:支持单站点和多站点模式,可通过域名解析到不同站点模板。
- 模板系统:后端模板支持 Bootstrap 默认样式、黑色样式和 flat-ui 样式;前端模板支持默认内容发布、官网模板、图片模板和视频模板。
- 用户与权限:支持用户注册、登录、密码加密(3DES)、OAuth2 认证、角色权限管理、菜单权限拦截。
- 互动功能:支持评论及回复、意见反馈、消息提示、文章点赞等。
- 统计功能:网站访问量统计、文章评论数和浏览量统计。
- API 接口:提供完善的 API 接口,支持多版本并行、参数加密、登录验证、黑名单和版本控制。
- 缓存机制:支持缓存自动更新,可配置 Redis 缓存。
- 文件管理:支持模板在线编辑、文件上传备份、阿里云 OSS 备份恢复。
适用与不适用场景
适用场景:
- 需要快速搭建信息咨询类网站、企业官网、博客、图片展示、视频展示等场景。
- 需要多站点管理的门户网站。
- 需要定制化模板的 CMS 项目。
- 需要提供 API 接口供第三方调用的场景。
不适用场景:
- 对前端交互要求极高的单页应用(SPA)场景。
- 需要非关系型数据库(如 MongoDB)作为主存储的场景。
- 需要微服务架构的复杂系统。
- 对实时性要求极高的应用(如实时聊天)。
技术架构与依赖
- Web 框架:JFinal(版本 5.2.2,根据 ChangeLog 最新更新)
- 模板引擎:Beetl(版本 3.16.2)
- 数据库:MySQL(驱动 8.0)
- 连接池:Druid(从 c3p0 更换)
- 前端框架:Bootstrap
- 缓存:支持 Redis(通过 JedisClient)
- 构建工具:Maven
- 其他:OAuth2、UEditor、UMeditor、FST 等
安装与快速开始
- 下载项目代码,安装 JDK、Maven、MySQL。
- 在项目目录下运行
mvn install,提示 BUILD SUCCESS 即可。 - 创建 MySQL 用户和数据库,运行
/jfinal_cms/sql下对应jfinal_cms_v4.sql。 - 数据库配置文件:
/jfinal_cms/src/main/resources/conf/db.properties。 - 如需要 OAuth2,设置
src/conf/oauth.properties。 - 运行:
mvn tomcat:run。 - 系统默认采用单站点模式,可在“其他管理”下“站点管理”菜单切换。
- 如果使用多站点,可在“系统管理”下“多站点标示”菜单中,将“多站点标示”项目修改为 true。
- 多站点需要设置各个站点对应的域名,通过域名解析到不同的站点模板。
典型使用方法
- 后台管理:访问
http://${ip:port}/${project_name}/admin,使用测试账号admin/admin123或test/123456登录。 - API 调用:参考
docs/api文档.md,例如获取栏目列表:/api/action/folders?version=1.0.1&apiNo=1000000&time=20170314160401&apiUser=admin&checkSum=YBrs&p={siteId:2}。 - 模板切换:在后台“模板管理”中可在线编辑和切换模板。
- 多站点配置:在“系统管理”中开启多站点标示,并设置各站点域名。
配置与部署要点
- 数据库配置:修改
db.properties中的数据库连接信息。 - OAuth2 配置:修改
oauth.properties以启用 OAuth2。 - API 配置:在系统管理-参数配置中,可设置
API.PARAM.ENCRYPT为 true 开启参数加密,API.LOGIN.VALID为 true 开启登录验证。 - 缓存配置:可配置 Redis 缓存,修改相关配置。
- 部署方式:支持 Maven 内嵌 Tomcat 运行,也可打包成 WAR 部署到外部 Tomcat。
限制、风险与许可证
- 限制:项目主要面向传统 Web 应用,前端交互相对简单;文档可能不完整,部分功能依赖第三方服务(如 CDN)。
- 风险:项目更新频率较低,可能存在安全漏洞,建议定期检查更新;使用默认账号密码存在安全风险,生产环境务必修改。
- 许可证:Apache-2.0。
官方链接
- GitHub 仓库:https://github.com/jflyfox/jfinal_cms
- 码云仓库:https://gitee.com/jflyfox/jfinal_cms
- API Client 项目:https://github.com/jflyfox/jfinal_cms_api_client
- 演示站点:http://mtg.jflyfox.com/ 等
信息来源和分析时间
- 信息来源:GitHub 仓库 README、ChangeLog.md、docs/api文档.md、docs/donate.md。
- 分析时间:2026-06-10(基于最新 release 日期)。