MRCMS

基于 Java 的动态内容管理系统
授权协议 GPLv2
开发语言 Java Groovy JavaScript HTML/CSS
所属分类 Web应用开发、 后台管理系统(模板)
软件类型 开源软件
地区 国产
投 递 者 欧渝
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

MRCMS 简介

MR 代表的是 mushroom,翻译中文为蘑菇。名称灵感来源于七采蘑菇这么一个说法,根据 MRCMS 自身的一些特点,因此命名为蘑菇内容管理系统。后台采用 Java 语言和与 Java 无缝集成的 Groovy 脚本语言作为支撑,实现系统热部署扩展功能。

项目背景

在开放、自由的中国互联网中,CMS 领域做的公司或者个人很多,其中使用 PHP、ASP、JSP 等语言开发的为主流语言。PHP、ASP、JSP 优点在于他们的动态执行代码。这里我们就说说 JSP,每次更新都要编译为 class 字节码,可能有时候还会出现问题,而且面向过程开发,维护性差。受到目前主流的 MVC 开发模式影响,那我们可以使用 Servlet+JSP 来实现啊,不错,我们是这样做的!但是后台的开发效率要提高,这里我们选择了 SpringMVC 作为后台的框架。我们要做的就是颠覆,什么呢? ”No JSP!“,在项目的架构中,不使用 JSP,我们同样达到了在线实时动态扩展功能,而不必重启服务器带来的时间成本。(更多项目历史性资料登录官方网站浏览)

技术架构 

服务端后台:SpringMVC、Spring Data、URL 规则引擎、缓存、数据库连接池、线程池、Freemarker 模板引擎、线程安全相关技术、性能优化

Web前端:HTML5、CSS3、JQuery(及其插件)、Ueditor、Echarts、缓存、前端性能优化、浏览器兼容处理(不支持 IE8)、字体图标

设计风格:扁平化设计

测试工具:Spring Test、Apache JMeter、各种浏览器(Chrome/Firefox/Safari/Opera/IE11)

(目前项目采用 github 分享源代码,maven 构建项目)

系统架构图

运行环境

服务器(经过测试的):

  •     window server(Jre6/tomcat6/mysql5)

  •     Linux(openjdk6/tomcat7/mysql5)

(如果有必要,同样可以搭建 Nginx 服务器做反向代理,MRCMS 支持获取用户真实 IP 地址

在你使用源码时,各种报错原因:

1. maven 环境问题

2. weixinapi.jar 可以 pom 依赖配置可以删除,因为 MRCMS 没有完全集成微信功能。

3. mysql 数据库驱动没有,建议放入 tomcat lib 目录

4. 建议使用 JMTServer,这个是在百度网盘共享的集成环境。

测试结果分享

测试环境:{系统: win8.1,内存: 8G,CPU: 2.6GHz,硬盘:7200转/秒}

通过 Apache Jmeter 测试并发500次/秒,系统仍然稳定运行,平均访问消耗时长为0.3秒左右。

如果你有什么需求,可以关注官方微信公众号,发送给公众号,我将记录你的意见或者建议。

(最近有朋友拿官方网站测试,每天 PV 都达到 W 级记录,你们太厉害了重要的是官方网站没有崩溃 

特点介绍

  • 支持 URL 规则重写、页面关键字和描述满足网站地址 SEO 需求。

  • 采用 c3p0作为数据库连接池提高 Web 执行性能。

  • 采用 freemarker 作为模板引擎,所以你可以在模板中写 freemarker 标签。

  • 采用内容模型和插件支持,提高系统扩展性。

  • 采用主流加密技术,保证站点后台安全性。

  • 提供网站碎片功能,在模板中直接获取碎片内容。

  • 支持 Nginx 反向代理引擎,可以获取用户真实 IP 地址。

  • 支持纯真 IP 数据库,记录地理位置信息,防范黑客攻击。

  • 增加了栏目 URL 重定向功能

  • 支持 markdown 语法,实现模型、插件帮助文档编写。

  • 支持 Groovy 开发插件应用

  • 采用百度 Echarts 图形化统计用户前台访问数据,抓取用户访问信息,提高流量转化率。

  • 国际化支持,自定义各个国家语言在模板中做数据绑定。

  • 添加了页面静态化支持,我们可以将动态生成页面,持久化降低计算时间,从而提高网站性能。

  • 更新了文章编辑器,提供 HTML、text/markdown 编辑功能。

  • 更多功能正在开发中...

扩展接口

扩展系统只要遵循 MRCMS 模块开发规范,可开发一下扩展

  •    配置引擎扩展

  •    URL 引擎扩展

  •    过滤器扩展

  •    标签扩展

  •    内容模型扩展

  •    服务端后台扩展 API(Java)

  •    管理界面扩展 API(JavaScript)

(这些扩展可以做二次开发扩展,也可以使用 Groovy 脚本扩展,详细文档待更新。)

后台功能界面展示:

错误信息输出,可以帮助大家更快找到解决办法。

【新版本即将发布】

支持用户分组,支持用户分组权限管理。

支持后台菜单管理

 主题切换

markdown 语法支持:

网站应用国际化支持,让您的网站走向国外。

官方网站测试国际化(当浏览器设置了语言时,网站自动识别语言无需重写URL)

访问http://cms.yl-blog.com/ 显示中文版本。

访问http://cms.yl-blog.com/?lang=en 则显示英文版本。

访问http://cms.yl-blog.com/?lang=ko 则显示韩文版本。

访问http://cms.yl-blog.com/?lang=zh-HK 则显示繁体版本。

注意:只是部分文字翻译了,因此看到混合语言不必惊讶。

需要研究源代码的朋友,建议使用github代码,因为github更新比较快!

发布版本的测试版本更新将在百度网盘!

GitHub开源: https://github.com/wuweiit/mushroom

后台地址:/admin/login.do

如果你觉得此项目可以,欢迎你收藏

 相关资料
  • 主要内容:可利用空间表中结点构成,分配算法,回收算法,总结前面介绍了系统在分配与回收存储空间时采取的边界标识法。本节再介绍一种管理存储空间的方法—— 伙伴系统。 伙伴系统本身是一种动态管理内存的方法,和边界标识法的区别是: 使用伙伴系统管理的存储空间,无论是空闲块还是占用块,大小都是 2 的 n 次幂(n 为正整数)。 例如,系统中整个存储空间为 2 m 个字。那么在进行若干次分配与回收后,可利用空间表中只可能包含空间大小为:2 0、2 1、2 2、…、

  • 主要内容:选择合适的网站,CMS平台在本章中,我们将首先讨论如何为您的网站做出正确的选择,以及为网站选择哪个内容管理系统(CMS)平台。 选择合适的网站 让我们通过问自己几个问题来理解这一点,然后详细讨论这个概念。 问题1 - 你要花多少钱? 回答 - 这是与预算直接相关的主要问题之一。 如果你的预算很低,那么应该考虑一些非商业性的,而不是太复杂。 问题2 - 需要多少时间来计划维护? 回答 - 如果要发布很多优惠报价,最好有一个博

  • jfinal是由jfinal2.2+freemarker+easyui写的一个后台管理系统,参考了jty等一些优秀的开源项目,实现了一个基础的后台管理系统。 在线访问:http://moriiy.wicp.net/jfinal/ 有时可能无法访问(毕竟是部署在自己电脑上的),尽量白天访问,进入系统尽量不要做修改或删除操作。 帐号:admin 密码:123456 测试 test 密码123456

  • 动态内存堆接口 结构体 struct   rt_memheap_item   内存堆管理控制块 更多...   struct   rt_memheap   内存堆控制块 更多...   函数 void *  rt_malloc (rt_size_t size)   分配内存块   void *  rt_realloc (void *rmem, rt_size_t newsize)   重新分配内存

  • 我目前正在为一家建筑公司建造一个场地,该公司专门从事非工作时间的紧急维修。我想在网站上的主要CTA按钮上显示他们的主要号码,并在下午6点后将此改为他们的非工作时间号码。该公司是一家英国公司,所以时间是基于英国时间。这可以用一些Javascript完成吗? 示例:在8am到5:59pm之间呼叫0141 xxxxxxxx'在6pm到7:59am之间呼叫0761 xxxxxxxx'

  • 我有用自定义单元格(继承自)填充的用户界面视图,每个单元格都包含一个,该视图根据其内容自动调整大小。事情是这样的,如何根据内容(可变视图)更改 单元格的高度。 该解决方案必须是动态的,因为用于填充< code>UIWebViews的HTML是从不断变化的提要中解析的。 我觉得我需要使用委托方法 中更改单元格的高度吗? 任何帮助都是伟大的。谢谢 两年多前我问过这个问题。通过介绍自动布局,可以找到iO

  • 本文向大家介绍基于java实现简单的银行管理系统,包括了基于java实现简单的银行管理系统的使用技巧和注意事项,需要的朋友参考一下 页面代码之一: mvc设计模式,分包 分包图片 具体的MVC,已经在上一个项目中介绍了。可以看图书管理系统。这个项目。 简单效果演示: 登陆主页面 注册页面 登录: 登陆成功! 功能页面! 存款,取款,转账之前跳转的页面 存款 存款后的金额改变了 转账 转账成功! 转