JPress是一個(gè)使用java開(kāi)發(fā)的類(lèi)似WordPress的產(chǎn)品,并在此基礎(chǔ)上增加了電商的功能,使用JFinal開(kāi)發(fā),支持類(lèi)似wordpress的幾乎所有功能,使用Java開(kāi)發(fā)的建站神器,目前已經(jīng)有10w+網(wǎng)站使用JPress進(jìn)行驅(qū)動(dòng)!
軟件特色:
1、 輕。
輕到只有 8張 數(shù)據(jù)表,卻能實(shí)現(xiàn)wordpress的幾乎所有功能。依賴(lài)的jar包也極度輕,目前只有cos-26Dec2008.jar、druid-1.0.16.jar、ehcache-2.7.5.jar、fastjson-1.2.7.jar、freemarker-2.3.23.jar、javax.mail.jar、jfinal-2.2-bin-with-src.jar、jfinal-weixin-1.7-bin-with-src.jar、jsoup-1.8.3.jar、log4j-1.2.17.jar、mysql-connector-java-5.1.36.jar、slf4j-api-1.7.7.jar、slf4j-log4j12-1.7.7.jar、jetty-server-8.1.8.jar 這 14個(gè) jar包,而且其中jetty-server-8.1.8.jar 不是必須的,只用于方便調(diào)試。
包括jar包在內(nèi)的整個(gè)項(xiàng)目在20MB左右。
2、快。
無(wú)論多么復(fù)雜的頁(yè)面,JPress響應(yīng)幾乎在10毫秒內(nèi),同時(shí)JPress支持阿里云,七牛,又拍云等CDN作為加速,支持分布式部署等功能,就算是香港的服務(wù)器,只能用“飛快”來(lái)形容。
3、靈活。
JPress提出的“模板即模型”的概念,模板制作人可以用JPress來(lái)做博客,新聞系統(tǒng),論壇,問(wèn)答社區(qū),商城…加上其靈活的插件功能,幾乎可以用來(lái)做任何類(lèi)型的網(wǎng)站。
4、國(guó)產(chǎn)。
因?yàn)閲?guó)產(chǎn),所以更符合國(guó)人需求。JPress天生融合了微信公眾號(hào),JPress內(nèi)置了 阿里大魚(yú) 的短信發(fā)送功能,支持了QQ郵箱,163郵箱等作為郵件發(fā)送服務(wù)器,后續(xù)會(huì)增加微信模板消息發(fā)送通知用戶等更加符合國(guó)人需求的功能。
最最重要的的是
JPress使用了最寬松的LGPL開(kāi)源協(xié)議,和國(guó)內(nèi)的那些采用了 私有協(xié)議 的“開(kāi)源”產(chǎn)品并不是一個(gè)級(jí)別的。
軟件功能:
在功能方面:
支持自定義模型,自定義模型通過(guò)模板來(lái)定義,而不是后臺(tái)功能。同時(shí)模型內(nèi)容支持自定義類(lèi)別,比如文章模型支持專(zhuān)題、分類(lèi)、標(biāo)簽等類(lèi)別。
支持多模板引擎,默認(rèn)使用Freemarker,模板制作者可以使用其他引擎比如thymeleaf來(lái)渲染,同時(shí)支持后臺(tái)在線編輯模板(目前暫時(shí)只支持freemarker引擎)。
支持多數(shù)據(jù)庫(kù)類(lèi)型,可以配置不同的數(shù)據(jù)庫(kù)(目前暫只支持mysql)。
支持多編輯器,后臺(tái)可視化編輯和markdown編輯自由切換,默認(rèn)支持在線圖片編輯和代碼高亮等功能。
支持插件化,幾行代碼就可以完成一個(gè)插件的開(kāi)發(fā),git.oschina.net和github上已經(jīng)有插件的helloworld實(shí)例。
支持CDN設(shè)置,包括七牛,阿里云,又拍云等。
上傳圖片支持水印設(shè)置,同時(shí)上傳圖片自動(dòng)剪切成為模板需要的多種圖片尺寸,保證圖片顯示不會(huì)拉伸。
用戶登錄支持第三方登錄,支持QQ、微信、微博、開(kāi)源中國(guó)、github、Fac book、twitt er、linkedin(目前只完成QQ、微信、微博、開(kāi)源中國(guó)、github的登陸)。
支持自定義URL,網(wǎng)站內(nèi)容URL風(fēng)格自定義。
API支持,方便APP或其他第三方調(diào)用數(shù)據(jù)。
國(guó)際化支持,使用JPress輕松制作任何語(yǔ)言的網(wǎng)站。
極簡(jiǎn)的SEO功能,可以為每篇文章、每個(gè)分類(lèi)、每個(gè)標(biāo)簽單獨(dú)設(shè)置SEO,支持sitemap輸出。
用戶注冊(cè)支持郵件和短信驗(yàn)證,目前短信服務(wù)商暫時(shí)只支持阿里大魚(yú)。
在微信方面:
支持微信菜單設(shè)置。
支持自動(dòng)回復(fù),添加關(guān)鍵字和回復(fù)內(nèi)容。
支持默認(rèn)回復(fù),包括:用戶關(guān)注時(shí)、進(jìn)入多客服時(shí)、退出多客服時(shí)、發(fā)送圖片時(shí)、發(fā)送語(yǔ)音時(shí)、發(fā)送視頻時(shí)、發(fā)送位置時(shí)、發(fā)送連接時(shí)、用戶掃描了帶參數(shù)的二維碼時(shí)、用戶搖一搖時(shí)。
所有的自動(dòng)回復(fù)或默認(rèn)回復(fù)支持“高級(jí)回復(fù)”功能,比如回復(fù)一篇文章,回復(fù)一個(gè)網(wǎng)址…高級(jí)回復(fù)是由JPress內(nèi)置開(kāi)發(fā)的特殊回復(fù),但完全可配置,今后會(huì)增加更多的“高級(jí)回復(fù)”功能。
自動(dòng)回復(fù)或默認(rèn)回復(fù)支持插件回復(fù),調(diào)用JPress插件完成回復(fù)。
支持文章搜索,回復(fù)關(guān)鍵字即可返回關(guān)鍵字匹配文章。
未來(lái)會(huì)支持文章同步或微信導(dǎo)入等實(shí)用功能。
在技術(shù)方面:
自豪的采用了JFinal作為核心,JPress也是得益于JFinal靈活的架構(gòu)。在JFinal framework開(kāi)源體系里,JPress關(guān)心每行邏輯的實(shí)現(xiàn),重視每行代碼質(zhì)量,應(yīng)該屬于JFinal的最佳實(shí)踐,所以也應(yīng)該是每個(gè)JFinaler必讀的項(xiàng)目。
使用Freemarker和thymeleaf作為模板引擎。JPress內(nèi)置的獨(dú)創(chuàng)緩存,使得的UI渲染速度已經(jīng)和模板引擎無(wú)關(guān)。
使用了tinymce做可視化編輯器,使用simplemde做markdown編輯器。兩者可以后臺(tái)自由切換。
文件和圖片上傳的UI插件使用了fine-uploader。
在前端上,JPress使用了jquery,bootstrap,admin lte,font-awesome,x-editable,fastclick,toastr,tag-editor,pace,layer等。
在安全方面,盡管我個(gè)人做了非常多的努力,已經(jīng)在XSS,CSRF,SQL注入,Cookie安全等方面做了很多的工作,但是還是需要更多的人來(lái)一起挖掘和完善,安全是一個(gè)永恒的話題。(但是對(duì)于新手朋友來(lái)說(shuō),這些安全應(yīng)該都是值得去學(xué)習(xí)和了解的,不是嗎?)
支持分布式部署,JPress重寫(xiě)了HttpSession,使用ehcache實(shí)現(xiàn)了session的功能,同時(shí)在項(xiàng)目中大量依賴(lài)于cookie,在分布式架構(gòu)上毫無(wú)壓力。
更新日志:
jpress v3.2.5 更新日志:
修復(fù):JPress 代碼生成器生成的 Maven 的版本號(hào)不正確的問(wèn)題
修復(fù):JPress 后臺(tái)的重置按鈕不起作用的問(wèn)題
修復(fù):Menu 的 isMyChild() 方法判斷錯(cuò)誤的問(wèn)題
修復(fù):用戶中心綁定第三方賬號(hào)頁(yè)面出現(xiàn)錯(cuò)誤的問(wèn)題
優(yōu)化:ApiInterceptor 在某些極端情況下可能出現(xiàn)空指針異常的問(wèn)題
優(yōu)化:JPress 后臺(tái)名稱(chēng)修改為動(dòng)態(tài)獲取
優(yōu)化:后臺(tái)登錄功能當(dāng)密碼錯(cuò)誤時(shí)自動(dòng)刷新驗(yàn)證碼的功能
優(yōu)化:優(yōu)化 JPress 的非法詞庫(kù)
優(yōu)化:用戶登錄功能支持 Ajax 請(qǐng)求登錄