JPress,一款基于Java开发的平台,它借鉴了WordPress的精髓,并在其基础上丰富了电商功能。采用JFinal框架进行构建,JPress不仅继承了WordPress的大部分基本功能,还以Java的力量打造出强大的网站构建工具。目前已有超过10万家网站选择JPress作为其发展的动力源泉。
JPress的设计之轻,仅包含8张数据表,却能实现WordPress的全部功能。其依赖的jar包同样轻盈,目前仅有14个,包括cos-26Dec2008.jar、druid-1.0.16.jar等。值得一提的是,jetty-server-8.1.8.jar并非必需,仅为便捷调整之用。所有包含jar包在内的工程大小控制在20MB左右。
无论页面多么复杂,JPress的响应时间均保持在10ms以内。同时JPress支持阿里云服务器、七牛、又拍云等CDN加速,并支持分布式部署,即便在香港的服务器上,也能体验到“飞一般”的畅快。
JPress提出了“模板即实体模型”的理念,使得模板制作者可以使用JPress搭建博客、新闻系统、社区论坛、问答社区、商城系统等。其强大的插件功能,几乎可以用于构建任何类型的网站。
作为一款国产软件,JPress更符合中国人的需求。它原生支持微信公众平台,内嵌了阿里大鱼的群发短信功能,支持QQ邮箱、163邮箱等邮件服务器,未来还将推出更多符合中国用户需求的功能。更重要的是JPress采用了最宽松的LGPL开源协议,与国内那些使用独享协议的“开源系统”产品相比,有着本质的不同。
支持自定义实体模型,实体模型根据模板来定义,内容支持自定义类型,如文章实体模型支持专题、分类、标签等类型。
支持多模板模块,默认使用Freemarker,支持后台在线文档编辑模板(目前仅支持Freemarker模块)。
支持多数据库类型,可配置不同的数据库查询(目前暂只支持MySQL)。
支持多在线编辑器,后台数据可视化编写和Markdown编写可随意转换,默认支持免费图片编写和代码高亮等功能。
支持插件化仅需两行源代码即可进行插件开发,并提供了github上已有的插件的helloworld案例。
支持CDN设置,包括七牛、阿里云服务器、又拍云等。
上传照片支持图片水印设置,同时自动裁剪成模板所需的多种图片尺寸,确保图片展示效果。
账号登录支持第三方登录,支持QQ、微信、新浪微博、开源中国、github、Facebook、Twitter、linkedin(目前仅支持QQ、微信、新浪微博、开源中国、github的登录)。
支持自定义URL,网站内容URL风格可自定义。
API支持,便于APP或其他第三方启用数据。
现代化支持使用JPress轻松制作任何语言的网站。
简单的SEO功能,可为单篇文章、每个分类、每个标签独立设置SEO,支持sitemap输出。
新用户注册支持电子邮件和手机短信验证,目前短信服务提供商仅支持阿里大鱼。
支持微信菜单设置。
支持自动回复,包含关键词和回复内容。
支持默认回复,包括:客户关注时、进入多在线客服时、退出多在线客服时、推送图片时、推送语音聊天时、推送视频时、推送位置时、推送链接时、客户扫描了带参数的二维码时、客户摇一摇时。
全部的自动回复或默认回复支持“高级回复”功能,如回复一篇文章、回复一个网址等。高级回复由JPress内置开发,但可完全自定义,未来将推出更多的“高级回复”功能。
自动回复或默认回复支持插件回复,可启用JPress插件进行回复。
支持文章检索,回复关键词即可回到关键词匹配的文章。
未来将支持文章同步或微信导入等实用功能。
JPress自豪地使用了JFinal作为核心框架,得益于JFinal灵活的架构,JPress专注于每层的逻辑实现,注重每层代码的质量,应属JFinal的最佳实践,也是每个JFinaler必看的优秀项目。
使用Freemarker和thymeleaf作为模板模块。
内嵌独创性缓存机制,使得UI的3D渲染速度与模板模块无关。
使用tinymce作为数据可视化在线编辑器,使用simplemde作为Markdown在线编辑器。二者可在后台随意切换。
文档和上传图片的UI插件使用了fine-uploader。
在前端JPress使用了jQuery、Bootstrap、admin lte、font-awesome、x-editable、fastclick、toastr、tag-editor、pace、layer等。
尽管本人已做了大量工作,在XSS、CSRF、SQL注入、Cookie安全等方面进行了很多防护,但仍需更多人共同挖掘和完善,安全性是一个永恒的话题。(但是对于新手朋友来说这些安全性知识应当是学习和熟悉的内容,不是吗?)
支持分布式部署,JPress调用了HttpSession,使用ehcache完成了session的功能,同时在工程中大量使用cookie,在分布式部署上没有压力。
修复:JPress代码生成器生成的Maven版本信息有误的问题。
修复:JPress后台的重置按钮失灵的问题。
修复:Menu的isMyChild()方法判断不正确的问题。
修复:个人中心关联第三方账户页面发生异常的问题。
修复:ApiInterceptor在某些极端情况下可能发生空指针异常的问题。
优化:后台名称调整为动态获取。
优化:后台登录功能当密码错误时自动刷新验证码的功能。
优化:增加JPress的不法词典。
优化:账号登录功能支持Ajax请求登录。