聲明:該框架面向企業(yè),是大型互聯(lián)網(wǎng)分布式企業(yè)架構(gòu),后期會介紹linux上部署高可用集群項目。
有愿意了解框架技術或者源碼的朋友直接加Q(2137028325)一起學習
項目基礎功能截圖(自提供了最小部分)
介紹
1. 項目核心代碼結(jié)構(gòu)截圖
<modules>
<!-- jeesz 工具jar -->
<module>jeesz-utils</module>
<!-- jeesz 公共配置jar -->
<module>jeesz-config</module>
<!-- jeesz 核心框架jar -->
<module>jeesz-framework</module>
<!-- jeesz CMS業(yè)務jar -->
<module>jeesz-core-cms</module>
<!-- jeesz 代碼自動生成業(yè)務jar -->
<module>jeesz-core-gen</module>
<!-- jeesz 我的收藏業(yè)務jar -->
<module>jeesz-core-bookmark</module>
<!-- jeesz 電子流業(yè)務jar -->
<module>jeesz-core-act</module>
<!-- jeesz OA業(yè)務jar -->
<module>jeesz-core-oa</module>
<!-- jeesz 測試業(yè)務jar -->
<module>jeesz-core-test</module>
<!-- jeesz 定時調(diào)度業(yè)務jar -->
<module>jeesz-core-scheduler</module>
<!-- jeesz 我的任務業(yè)務jar -->
<module>jeesz-core-task</module>
<!-- jeesz admin后臺管理系統(tǒng) -->
<module>jeesz-web-admin</module>
<!-- jeesz Restful服務管理系統(tǒng) -->
<module>jeesz-web-service</module>
<!-- jeesz 定時調(diào)度管理系統(tǒng) -->
<module>jeesz-web-scheduler</module>
<!-- jeesz 我的任務Dubbo服務消費者 -->
<module>jeesz-web-task</module>
<!-- jeesz 我的收藏Dubbo服務消費者 -->
<module>jeesz-web-bookmark</module>
<!-- jeesz 我的收藏Dubbo服務接口 -->
<module>jeesz-facade-bookmark</module>
<!-- jeesz 我的收藏Dubbo服務生產(chǎn)者 -->
<module>jeesz-service-bookmark</module>
<!-- jeesz 我的任務Dubbo服務接口 -->
<module>jeesz-facade-task</module>
<!-- jeesz 我的任務Dubbo服務生產(chǎn)者 -->
<module>jeesz-service-task</module>
<!-- JMS消息 -->
<module>jeesz-web-mq-task</module>
</modules>
特別提醒:開發(fā)人員在開發(fā)的時候可以將自己的業(yè)務REST服務化或者Dubbo服務化
2. 項目依賴介紹
2.1 后臺管理系統(tǒng)、Rest服務系統(tǒng)、Scheculer定時調(diào)度系統(tǒng)依賴如下圖:
2.2 Dubbo獨立服務項目依賴如下圖:
3. 平臺簡介
Jeesz是一個分布式的框架,提供項目模塊化、服務化、熱插拔的思想,高度封裝安全性的Java EE快速開發(fā)平臺。
Jeesz本身集成Dubbo服務管控、Zookeeper注冊中心、Redis分布式緩存技術、FastDFS分布式文件系統(tǒng)、ActiveMQ異步消息中間件、Nginx負載均衡等分布式技術
使用Maven做項目管理,項目模塊化,提高項目的易開發(fā)性、擴展性
以Spring Framework為核心容器,Spring MVC為模型視圖控制器,MyBatis為數(shù)據(jù)訪問層, Apache Shiro為權限授權層,Ehcahe對常用數(shù)據(jù)進行緩存,Activit為工作流引擎等。
前端集成Bootstrap4 metronic框架,UI響應式、扁平化布局,適應所有PC、Pad、Anroid、ios 移動設備等。
Jeesz主要定位于互聯(lián)網(wǎng)企業(yè)架構(gòu),已內(nèi)置企業(yè)信息化系統(tǒng)的基礎功能和高效的代碼生成工具,包括:系統(tǒng)權限組件、數(shù)據(jù)權限組件、數(shù)據(jù)字典組件、核心工具 組件、視圖操作組件、工作流組件、代碼生成等。采用分層設計、雙重驗證、提交數(shù)據(jù)安全編碼、密碼加密、訪問驗證、數(shù)據(jù)權限驗證。
Jeesz目前包括以下模塊項目,后臺系統(tǒng)管理系統(tǒng),RestFul獨立服務系統(tǒng)、Scheduler定時調(diào)度系統(tǒng)、內(nèi)容管理(CMS)系統(tǒng)、在線辦公(OA)系統(tǒng)、我的待辦(Task服務)、我的收藏(Bookmark服務)。
后臺管理系統(tǒng)包括企業(yè)組織架構(gòu)(用戶管理、機構(gòu)管理、區(qū)域管理)、菜單管理、角色權限管理、字典管理等功能;
RestFul獨立提供標準Rest服務API,您可以快速實現(xiàn)自己的業(yè)務,提供需要的服務;
Quartz定時調(diào)度系統(tǒng)可以動態(tài)配置您的任務規(guī)則等;
內(nèi)容管理(CMS)系統(tǒng),包括內(nèi)容管理,欄目管理、站點管理、公共留言、文件管理、前端網(wǎng)站展示等功能;
在線辦公(OA)系統(tǒng),主要提供簡單的流程實例。
Jeesz提供了常用工具進行封裝,包括日志工具、緩存工具、服務器端驗證、數(shù)據(jù)字典、當前組織機構(gòu)數(shù)據(jù)(用戶、機構(gòu)、區(qū)域)以及其它常用小工具等。另外 還提供一個強大的在線 代碼生成 工具,此工具提供簡單的單表、一對多、樹結(jié)構(gòu)功能的生成,如果對外觀要求不是很高,生成的功能就可以用了。使用了Jeesz基礎框架,可以提高快速開發(fā)效 率。
4. 內(nèi)置功能(只列了一部分功能)
1.用戶管理:用戶是系統(tǒng)操作者,該功能主要完成系統(tǒng)用戶配置。
2.機構(gòu)管理:配置系統(tǒng)組織機構(gòu)(公司、部門、小組),樹結(jié)構(gòu)展現(xiàn),可隨意調(diào)整上下級。
3.區(qū)域管理:系統(tǒng)城市區(qū)域模型,如:國家、省市、地市、區(qū)縣的維護。
4.菜單管理:配置系統(tǒng)菜單,操作權限,按鈕權限標識等。
5.角色管理:角色菜單權限分配、設置角色按機構(gòu)進行數(shù)據(jù)范圍權限劃分。
6.字典管理:對系統(tǒng)中經(jīng)常使用的一些較為固定的數(shù)據(jù)進行維護,如:是否、男女、類別、級別等。
7.操作日志:系統(tǒng)正常操作日志記錄和查詢;系統(tǒng)異常信息日志記錄和查詢。
8.連接池監(jiān)視:監(jiān)視當期系統(tǒng)數(shù)據(jù)庫連接池狀態(tài),可進行分析SQL找出系統(tǒng)性能瓶頸。
9.工作流引擎:實現(xiàn)業(yè)務工單流轉(zhuǎn)、在線流程設計器。
5. 開發(fā)工具
1.Eclipse IDE:采用Maven項目管理,模塊化。
2.代碼生成:通過界面方式簡單配置,自動生成相應代碼,目前包括三種生成方式(增刪改查):單表、一對多、樹結(jié)構(gòu)。生成后的代碼如果不需要注意美觀程度,生成后即可用。
6. 技術選型(只列了一部分技術)
1、后端
服務框架:Dubbo、zookeeper、Rest服務
緩存:Redis、ehcache
消息中間件:ActiveMQ
負載均衡:Nginx
分布式文件:FastDFS
數(shù)據(jù)庫連接池:Alibaba Druid 1.0
核心框架:Spring framework
安全框架:Apache Shiro 1.2
視圖框架:Spring MVC 4.0
服務端驗證:Hibernate Validator 5.1
布局框架:SiteMesh 2.4
工作流引擎:Activiti 5.15
任務調(diào)度:quartz 1.8.5
持久層框架:MyBatis 3.2
日志管理:SLF4J 1.7、Log4j
工具類:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI
2、前端
JS框架:JQuery 1.9。
CSS框架: Bootstrap 4 metronic
客戶端驗證:JQuery Validation Plugin。
富文本:CKEcitor
文件管理:CKFinder
動態(tài)頁簽:Jerichotab
數(shù)據(jù)表格:jqGrid
對話框:jQuery jBox
樹結(jié)構(gòu)控件:jQuery zTree
其他組件:Bootstrap 4 metronic
3、支持
服務器中間件:Tomcat 6、7、Jboss 7、WebLogic 10、WebSphere 8
數(shù)據(jù)庫支持:目前僅提供mysql數(shù)據(jù)庫的支持,但不限于數(shù)據(jù)庫,下個版本升級多數(shù)據(jù)源切換和數(shù)據(jù)庫讀寫分離: 如:Oracle、SqlServer、H2等
支持開發(fā)環(huán)境:Eclipse、MyEclipse、Ras、Idea等
環(huán)境搭建:
1.環(huán)境準備
1.開發(fā)工具: Eclipse IDE(建議使用高一點的版本)
2.JDK版本:JDK1.7
3.項目管理: Maven3.1.1
2.安裝步驟
1.安裝jdk1.7并配置環(huán)境變量(相信大家都會做,這里不再做重復的說明)
2.安裝maven:maven安裝過程就是解壓縮的過程(我已經(jīng)幫大家解壓了, 目錄:E:\myprj\jeesz-maven\apache-maven-3.1.1),為了方便大家,這邊已經(jīng)提供了相關的安裝包,會在打包的目錄下共享。
3.mavan配置環(huán)境變量,右擊我的電腦?屬性?高級系統(tǒng)設置?環(huán)境變量?找到(系統(tǒng)變量path),在最前面輸入你的maven安裝包路徑,聲明:因為上一步解壓了指定的目錄,所以配置如下:
E:\myprj\jeesz-maven\apache-maven-3.1.1\bin;
相信大家都有配過環(huán)境變量,如果您不是很清楚,請查詢相關資料,了解一下maven的相關知識。
4.打開 cmd,在里面敲:mvn –version,出現(xiàn)以下結(jié)果說明你maven安裝成功了
mvn 是 maven 的一個指令,mvn-version 是查看版本信息,我的操作系統(tǒng)是 64位的WIN7,安裝的 maven 是 3.1.1,如果能打印如上信息,說明到此 Maven3 已經(jīng)在你的電腦上安裝完成。
5.建工作空間(進入后選中j2ee視圖)
6.配置Eclipse編碼為UTF-8
Eclipse工具欄中選擇Window》Prefrences》General》Workspace
7.配置jre環(huán)境(之前大家需要安裝了jdk1.7版本,這里就使用安裝好的jdk進行配置):
選擇Window》Prefrences》java》Installed JREs》Edit》選擇自己本地jdk安裝路徑》Finished》OK
8.去除JavaScript的驗證等信息(因為項目中大量使用js、css、xml等其他不同格式的文件,考慮到每次編譯的執(zhí)行時間,所以這邊臨時將一些驗證信息去除)
Window》Prefrences》Validation》Suspend all validators》ok
9. 修改剛剛安裝的maven settings.xml配置文件,路徑如下:E:\myprj\jeesz-maven\apache-maven-3.1.1\conf,
添加本地庫地址:<localRepository>E:/myprj/jeesz-maven/apache-maven-3.1.1/repository</localRepository>
修改中央庫路徑(在網(wǎng)絡正常的情況下,可以從遠程中央庫下載缺失的jar包,我這里使用了Oschina的中央庫,如果網(wǎng)絡有問題,
大家可以使用自己公司的私服進行加載相關jar包),考慮到大家包有時候下載不下來,我這里也給大家共享了項目所需要的jar包,全部放到了以下目錄:
E:/myprj/jeesz-maven/apache-maven-3.1.1/repository
10. Eclipse中配置maven安裝目錄和Setting文件加載的本地庫目錄
11.導入Maven項目
File》Import》Existing Maven Projects》下一步
選擇你本地的maven項目(請選中jeesz-project根目錄),點擊確定
加載出來所有項目后,點擊finish完成
提醒:這個導入的過程要一段時間,因為我本地連接網(wǎng)絡,所以會從遠程中央庫下載項目所需要的所有的jar包,請大家耐心等候。
如果你使用了本地庫則不需要等待很長時間,如果是使用公司私服,則等待時間也不會很長。
導入后的項目信息
本地庫的包已經(jīng)下載了
12.下載完所有jar包,更新maven項目:
1)選中所有項目 2) 右鍵選擇maven》Update project 選擇所有》勾選關聯(lián)項》點擊ok
如果項目還出現(xiàn)紅X錯誤,則必定是缺少相關的jar包,可以使用:
Window》showView》problem窗口查看異常信息
如果缺少jar包,可以將我們提供的jar包直接copy到你指定目錄即可
待項目里面的所有錯誤全部清零后才能進行下一步工作(如下圖所示)
選中所有項目,對項目進行清理:Project》clean
13. 嘗試對項目進行編譯、打包看是否有問題:
注意:一般我們打包編譯是針對于根項目,因為里面配置了所有的依賴關系。右鍵jeesz-project》Run As》Maven build…
在彈出的對話框中錄入clean install –X 命令,勾選Skip tests,Run…
提醒:如果對maven命令不是很熟的,可以去查下相關的資料
這邊簡單做下解釋: clean install –X 表示清理所有項目并將jar包裝載到本地庫,其中-X表示輸出的信息(一般在出現(xiàn)maven問題的時候可以使用-X來定位問題。)
此時控制臺開始編譯裝載所有的包,這個過程有點漫長,請大家耐心等候
出現(xiàn)以下結(jié)果說明項目是正常的。
打好的包(包含war、jar),都在target文件夾下,這邊只以jeesz-web-admin為實例截圖如下:
14.Tomcat發(fā)布jeesz項目(發(fā)布過程不做詳細介紹,大家都會做):
下面對各個不同的項目進行介紹:
Jeesz-web-admin: 可以獨立部署(后臺管理平臺)
Jeesz-web-service:可以獨立部署(REST服務平臺,客戶可以根據(jù)自己的業(yè)務去拓展Rest服務,里面已經(jīng)寫好了相關的實例)
Jeesz-service-bookmark、jeesz-service-task為dubbo服務提供者(這邊只通過收藏和待辦項目來對dubbo服務項目開發(fā)做相關介紹,客戶可以根據(jù)自己的業(yè)務去拓展dubbo服務,可以同時部署,也可以拆分部署)
Jeesz-web-bookmark、jeesz-web-task為dubbo消費者平臺,其中dubbo服務對外暴漏的服務接口為:Jeesz-facade-bookmark、jeesz-fa?ade-task(這邊只通過收藏和待辦項目來描述dubbo客戶端怎樣調(diào)用dubbo服務提供者的過程,客戶可以將dubbo消費端植入到不同的項目中,只需要做一些簡單配置就可以了)
部署條件:
1) 執(zhí)行mysql數(shù)據(jù)庫腳本: jeesz.sql
數(shù)據(jù)庫jdbc的配置項可以參考
2) Jeesz-web-admin可以直接通過tomcat部署
登陸用戶名密碼:jeesz/admin
3) Jeesz-web-service:可以通過tomcat獨立部署
登陸用戶名密碼:jeesz/admin
部署dubbo相關的項目需要具備以下條件
>安裝dubbo管控平臺,將war包解壓到tomcat,并將目錄替換為根目錄,直接啟動tomcat即可(開發(fā)環(huán)境提供window)
>Zookeeper注冊中心安裝,我這邊提供了zookeeper-3.4.5版本(開發(fā)環(huán)境提供window),進入安裝目錄啟動即可
提醒: 我這邊已經(jīng)給提供了相關的程序,其中dubbo管控平臺要獨立部署在Tomcat服務器上,這個不需要進行高可用配置,直接啟動tomcat就可以啟動。Zookeeper注冊中心有相關的命令可以直接運行啟動。如果想部署在linux系統(tǒng)上,可以看我們提供的相關文檔即可
5) 待dubbo管控臺和注冊中心啟動ok,則將Jeesz-service-bookmark、jeesz-service-task項目同時(可以獨立部署)部署到tomat中,為dubbo服務提供者
6) 登陸dubbo管控臺查看相關的服務信息,可以看到你發(fā)布的服務已經(jīng)由管控臺進行管控了:
http://localhost:8080/root
直接通過地址可以訪問是因為將包名改為了Root
用戶名密碼:root/root
7) 分部部署Jeesz-web-bookmark、jeesz-web-task dubbo消費者項目,目的是讓開發(fā)人員了解服務是怎樣調(diào)用的。
到此整個項目的安裝過程先到這里,請各位開發(fā)人員安裝完項目后投入開發(fā),所有的業(yè)務直接服務化,因為項目是基于驅(qū)動開發(fā)的,故將你們的表設計好,通過jeesz-web-admin項目的gen代碼生成模塊自動生成所有的controller、service、dao、xml、jsp界面等,直接進行業(yè)務編寫處理。近期會不斷的完善文檔,請時刻關注。
如果有朋友愿意了解項目更多的信息,請直接到我博客列表:
聲明:該框架面向企業(yè),是大型互聯(lián)網(wǎng)分布式企業(yè)架構(gòu),后期會介紹linux上部署高可用集群項目。
有愿意了解框架技術或者源碼的朋友直接加Q(2137028325)一起學習