EmsiteJava EE 分布式全自動(dòng)快速開發(fā)框架平臺(tái)
emsite-parent
框架簡介
emsite框架是眾多是基于眾多優(yōu)秀的開源項(xiàng)目,高度整合封裝而成的高效,高性能,強(qiáng)安全性的開源Java EE分布式全自動(dòng)快速開發(fā)框架平臺(tái)。 emsite管理后臺(tái)核心部分目前包括以下三大模塊,系統(tǒng)管理(SYS)模塊、代碼生成(GEN)模塊、全自動(dòng)增量發(fā)版(PACH)模塊。
1.系統(tǒng)管理模塊,包括組織架構(gòu)(用戶管理、機(jī)構(gòu)管理、區(qū)域管理)、菜單管理、角色權(quán)限管理、字典管理、文件管理等功能;
2.代碼生成模塊,完成重復(fù)的工作;
3.全自動(dòng)增量發(fā)版,輕松完成版本快速迭代;
emsite框架擁有全自動(dòng)增量發(fā)版子項(xiàng)目模塊[emsite-patch],該模塊可以對(duì)git/svn管理的項(xiàng)目進(jìn)行增量代碼生成用于增量發(fā)版。總共包含四種生成方案:1.git服務(wù)器分支提交分析;2.git提交日志分析;3.svn服務(wù)器分支提交分析;4.svn提交日志分析
框架規(guī)劃
emsite采用dubbo作為服務(wù)層框架,后臺(tái)將集成單點(diǎn)登錄、oauth2.0、storm+kafka消息處理系統(tǒng)、kafka+ flume+storm+hdfs+hadoop作為日志分析系統(tǒng)、配置中心、分布式任務(wù)調(diào)度系統(tǒng)、服務(wù)器實(shí)時(shí)監(jiān)控系統(tǒng)、搜索引擎系統(tǒng)(elasticsearch),以上各大功能將作為模塊化集成到項(xiàng)目。
emipre團(tuán)隊(duì)后期兩款產(chǎn)品:
1.在線客服開源系統(tǒng)
2.統(tǒng)一微信公眾號(hào)管理平臺(tái)
3.emsite-cloud云開發(fā)平臺(tái)
框架調(diào)整計(jì)劃表
01、分布式任務(wù)調(diào)度系統(tǒng)集成
02、poi文件導(dǎo)出、導(dǎo)入優(yōu)化解耦[2018-03-06---2018-03-12]
03、kafka+flume+storm+hdfs+hadoop日志分析系統(tǒng)模塊功能開發(fā)、當(dāng)前日志系統(tǒng)架構(gòu)優(yōu)化
04、框架部署結(jié)構(gòu)動(dòng)靜分離調(diào)整[ngnix+httpd],框架文件系統(tǒng)圖片資源服務(wù)器架構(gòu)調(diào)整[fastDFS]
05、Apache ActiveMQ/Apache RocketMQ內(nèi)部消息系統(tǒng)集成
06、emsite框架配置優(yōu)化,集成配置中心
07、cas單點(diǎn)登錄、jwt權(quán)限集成
微信公眾號(hào)管理平臺(tái)
08、微信公眾號(hào)第三方平臺(tái)基礎(chǔ)功能開發(fā)(公眾號(hào)管理、自定義菜單管理、粉絲管理、群發(fā)管理、素材管理)
09、微信接口調(diào)用監(jiān)控功能開發(fā)
10、微信公眾平臺(tái)插件開發(fā)(大轉(zhuǎn)盤、在線門店、微信論壇、微信商城)
在線客服開源系統(tǒng)
11、在線客服開源系統(tǒng)openfire+smack+微信h5+swing(待定)+sip服務(wù)器集成(待定)
------------------------------------------------------------------------------------------------------------
12、Solr/Elasticsearch搜索引擎系統(tǒng)集成
13、Swagger2系統(tǒng)開放Api接口文檔測(cè)試系統(tǒng)集成
14、系統(tǒng)架構(gòu)部署文檔、部署視頻教程、wiki文檔、系統(tǒng)模塊分析文檔完善等
15、Jenkins持續(xù)集成方案整理
16、遠(yuǎn)程RPC服務(wù)框架開發(fā)【服務(wù)熔斷、降級(jí)、限流、異步、分布式、全鏈路監(jiān)控】
17、emsite后臺(tái)管理系統(tǒng)UI全新升級(jí)
18、Activiti工作流+在線OA系統(tǒng)模塊開發(fā)
19、產(chǎn)品全線上線、開啟框架培訓(xùn)社區(qū)、開啟框架交流論壇
emsite-cloud版本開發(fā)
20、springboot+springcloud框架版本開發(fā)
內(nèi)置功能
1、用戶管理:用戶是系統(tǒng)操作者,該功能主要完成系統(tǒng)用戶配置。
2、機(jī)構(gòu)管理:配置系統(tǒng)組織機(jī)構(gòu)(公司、部門、小組),樹結(jié)構(gòu)展現(xiàn),可隨意調(diào)整上下級(jí)。
3、區(qū)域管理:系統(tǒng)城市區(qū)域模型,如:國家、省市、地市、區(qū)縣的維護(hù)。
4、菜單管理:配置系統(tǒng)菜單,操作權(quán)限,按鈕權(quán)限標(biāo)識(shí)等。
5、角色管理:角色菜單權(quán)限分配、設(shè)置角色按機(jī)構(gòu)進(jìn)行數(shù)據(jù)范圍權(quán)限劃分。
6、字典管理:對(duì)系統(tǒng)中經(jīng)常使用的一些較為固定的數(shù)據(jù)進(jìn)行維護(hù),如:是否、男女、類別、級(jí)別等。
7、操作日志:系統(tǒng)正常操作日志記錄和查詢;系統(tǒng)異常信息日志記錄和查詢。
8、連接池監(jiān)視:監(jiān)視當(dāng)期系統(tǒng)數(shù)據(jù)庫連接池狀態(tài),可進(jìn)行分析SQL找出系統(tǒng)性能瓶頸。
為何選擇emsite
1、使用 Apache License 2.0 協(xié)議,源代碼完全開源,無商業(yè)限制。
2、使用目前主流的Java EE開發(fā)框架,簡單易學(xué),學(xué)習(xí)成本低。
3、數(shù)據(jù)庫無限制,目前支持MySql、Oracle,可擴(kuò)充SQL Server、PostgreSQL、H2等。
4、模塊化設(shè)計(jì),層次結(jié)構(gòu)清晰。內(nèi)置一系列信息管理的基礎(chǔ)功能。
5、操作權(quán)限控制精密細(xì)致,對(duì)所有管理鏈接都進(jìn)行權(quán)限驗(yàn)證,可控制到按鈕。
6、數(shù)據(jù)權(quán)限控制精密細(xì)致,對(duì)指定數(shù)據(jù)集權(quán)限進(jìn)行過濾,七種數(shù)據(jù)權(quán)限可供選擇。
7、提供在線功能代碼生成工具,提高開發(fā)效率及質(zhì)量。
8、提供常用工具類封裝,日志、緩存、驗(yàn)證、字典、組織機(jī)構(gòu)等,常用標(biāo)簽(taglib),獲取當(dāng)前組織機(jī)構(gòu)、字典等數(shù)據(jù)。
9、兼容目前最流行瀏覽器(IE7+、Chrome、Firefox)。
10、最流行的分布式解決方案。
技術(shù)選型
后端
a、核心框架:Spring Framework 4.2.2
b、分布式服務(wù)框架:dubbo2.5.8
c、分布式協(xié)調(diào)組件:zookeeper3.4.6
d、安全框架:Apache Shiro 1.2
e、視圖框架:Spring MVC 4.2.2
f、服務(wù)端驗(yàn)證:Hibernate Validator 5.2
g、布局框架:SiteMesh 2.4
h、任務(wù)調(diào)度:Spring Task 4.2.2
i、持久層框架:MyBatis 3.2
j、數(shù)據(jù)庫連接池:Alibaba Druid 1.0
k、緩存框架:Ehcache 2.6、Redis
l、日志管理:SLF4J 1.7、Log4j
m、工具類:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI 3.9
前端
a、JS框架:jQuery 1.9。
b、CSS框架:Twitter Bootstrap 2.3.1(穩(wěn)定是后臺(tái),UI方面根據(jù)需求自己升級(jí)改造吧)。
c、客戶端驗(yàn)證:JQuery Validation Plugin 1.11。
d、富文本在線編輯:CKEditor
e、在線文件管理:CKFinder
f、動(dòng)態(tài)頁簽:Jerichotab
g、手機(jī)端框架:Jingle
h、數(shù)據(jù)表格:jqGrid
i、對(duì)話框:jQuery jBox
j、下拉選擇框:jQuery Select2
k、樹結(jié)構(gòu)控件:jQuery zTree
l、日期控件: My97DatePicker
平臺(tái)
a、服務(wù)器中間件:在Java EE 5規(guī)范(Servlet 3.0、JSP 2.1)下開發(fā),支持應(yīng)用服務(wù)器中間件 有Tomcat 7+、Jboss 7+、WebLogic 10+、WebSphere 8+。
b、數(shù)據(jù)庫支持:目前僅提供MySql或Oracle數(shù)據(jù)庫的支持,但不限于數(shù)據(jù)庫,平臺(tái)留有其它數(shù)據(jù)庫支持 接口, 你可以很方便的更改為其它數(shù)據(jù)庫,如:SqlServer 2008、MySql 5.5、H2等
c、開發(fā)環(huán)境:Jdk1.7+(默認(rèn)jdk1.8)、(Eclipse Java EE 4.3|sts-3.6.2.RELEASE|myeclipse10)、Maven 3.2+、Git
安全考慮
a、開發(fā)語言:系統(tǒng)采用Java 語言開發(fā),具有卓越的通用性、高效性、平臺(tái)移植性和安全性。
b、分層設(shè)計(jì):(數(shù)據(jù)庫層,數(shù)據(jù)訪問層,業(yè)務(wù)邏輯層,展示層)層次清楚,低耦合,各層必須通過接口才能接入并進(jìn)行參數(shù)校驗(yàn)(如:在展示層不可直接操作數(shù)據(jù)庫),保證數(shù)據(jù)操作的安全。
c、雙重驗(yàn)證:用戶表單提交雙驗(yàn)證:包括服務(wù)器端驗(yàn)證及客戶端驗(yàn)證,防止用戶通過瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等),跳過客戶端驗(yàn)證操作數(shù)據(jù)庫。
d、安全編碼:用戶表單提交所有數(shù)據(jù),在服務(wù)器端都進(jìn)行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數(shù)據(jù)等,確保數(shù)據(jù)安全。
e、密碼加密:登錄用戶密碼進(jìn)行SHA1散列加密,此加密方法是不可逆的。保證密文泄露后的安全問題。
f、強(qiáng)制訪問:系統(tǒng)對(duì)所有管理端鏈接都進(jìn)行用戶身份權(quán)限驗(yàn)證,防止用戶
g、服務(wù)監(jiān)控:系統(tǒng)采用dubbo的服務(wù)全鏈路監(jiān)控技術(shù)、可以做到精準(zhǔn)定位服務(wù)情況
快速體驗(yàn)
a、具備運(yùn)行環(huán)境:JDK1.7+、Maven3.2+、MySql5+或Oracle10g+。
b、下載emsite-parent項(xiàng)目,導(dǎo)入第三方ckfinder插件jar包到本地maven庫
c、修改src\main\resources\emsite.properties文件中的數(shù)據(jù)庫設(shè)置參數(shù)。
d、根據(jù)修改參數(shù)創(chuàng)建對(duì)應(yīng)MySql或Oracle數(shù)據(jù)庫用戶和參數(shù)。
e、新建數(shù)據(jù)庫emsite[字符集utf8 -- UTF-8 Unicode,排序規(guī)則utf8-bin],運(yùn)行bin\init-db.bat腳本,即可導(dǎo)入表結(jié)構(gòu)及演示數(shù)據(jù)(linux操作系統(tǒng):在控制臺(tái)中切換至項(xiàng)目根目錄,運(yùn)行命令:mvn antrun:run -Pinit-db);或者直接在數(shù)據(jù)庫工具中運(yùn)行emsite web項(xiàng)目bin目錄下的emsite_mysql.sql文件。
f、啟動(dòng)redis,zookeeper組件
g、啟動(dòng)emsite-service-dbs數(shù)據(jù)服務(wù)層項(xiàng)目,使用eclipse maven啟動(dòng)命令:clean tomcat7:run
h、運(yùn)行bin\run-tomcat7.bat或bin\run-jetty.bat,啟動(dòng)Web服務(wù)器(第一次運(yùn)行,需要下載依賴jar包,請(qǐng)耐心等待)。
i、最高管理員賬號(hào),用戶名:emsite 密碼:admin
