jeesite的框架的學習
JeeSite是基於多個優秀的開源專案,高度整合封裝而成的高效,高效能,強安全性的開源Java EE快速開發平臺。
JeeSite本身是以Spring Framework為核心容器,Spring MVC為模型檢視控制器,MyBatis為資料訪問層,Apache Shiro為許可權授權層,Ehcahe對常用資料進行快取,Activit為工作流引擎。
JeeSite主要定位於企業資訊化領域,已內建企業資訊化系統的基礎功能和高效的程式碼生成工具,包括:系統許可權元件、資料許可權元件、資料字典元件、核心工具元件、檢視操作元件、工作流元件、程式碼生成等。前端介面風格採用了結構簡單、效能優良、頁面美觀大氣的
JeeSite目前包括以下三大模組,系統管理(SYS)模組、內容管理(CMS)模組、線上辦公(OA)模組、程式碼生成(GEN)模組。 系統管理模組 ,包括企業組織架構(使用者管理、機構管理、區域管理)、選單管理、角色許可權管理、字典管理等功能; 內容管理模組 ,包括內容管理(文章、連結),欄目管理、站點管理、公共留言、檔案管理、前端網站展示等功能; 線上辦公模組 ,提供簡單的請假流程例項。
JeeSite 提供了常用工具進行封裝,包括日誌工具、快取工具、伺服器端驗證、資料字典、當前組織機構資料(使用者、機構、區域)以及其它常用小工具等。另外還提供一個強大的線上 程式碼生成 工具,此工具提供簡單的單表、一對多、樹結構功能的生成,如果對外觀要求不是很高,生成的功能就可以用了。如果你使用了
2. 內建功能
1. 使用者管理:使用者是系統操作者,該功能主要完成系統使用者配置。
2. 機構管理:配置系統組織機構(公司、部門、小組),樹結構展現,可隨意調整上下級。
3. 區域管理:系統城市區域模型,如:國家、省市、地市、區縣的維護。
4. 選單管理:配置系統選單,操作許可權,按鈕許可權標識等。
5. 角色管理:角色選單許可權分配、設定角色按機構進行資料範圍許可權劃分。
6. 字典管理:對系統中經常使用的一些較為固定的資料進行維護,如:是否、男女、類別、級別等。
7. 操作日誌:系統正常操作日誌記錄和查詢;系統異常資訊日誌記錄和查詢。
8. 連線池監視:監視當期系統資料庫連線池狀態,可進行分析SQL找出系統性能瓶頸。
9. 工作流引擎:實現業務工單流轉、線上流程設計器。
3. 開發工具
1. Eclipse IDE:採用Maven專案管理,模組化。
2. 線上演示:演示系統常用元件的使用程式碼,內嵌地圖案例等。
3. 程式碼生成:通過介面方式簡單配置,自動生成相應程式碼,目前包括三種生成方式(增刪改查):單表、一對多、樹結構。生成後的程式碼如果不需要注意美觀程度,生成後即可用。
4. 設計思想
1、 分層設計:(資料訪問層,業務邏輯層,展示層)層次清楚,低耦合,各層必須通過接口才能接入並進行引數校驗(如:在展示層不可直接操作資料庫),保證資料操作的安全。
2、 雙重驗證:使用者表單提交雙驗證:包括伺服器端驗證及客戶端驗證,防止使用者通過瀏覽器惡意修改(如不可寫文字域、隱藏變數篡改、上傳非法檔案等)而跳過客戶端驗證操作資料庫。
3、 安全編碼:使用者表單提交所有資料,在伺服器端都進行安全編碼,防止使用者提交非法指令碼及SQL注入獲取敏感資料等,確保資料安全。
4、 密碼加密:登入使用者密碼進行SHA1雜湊加密,此加密方法是不可逆的。保證密文洩露後的安全問題。
5、 訪問驗證:系統對所有管理端連結都進行使用者身份許可權驗證,防止使用者直接通過URL進行未授權頁面。
6、 資料驗證:對指定資料集許可權進行過濾,七種資料許可權可供選擇(所有許可權,公司及子公司,本公司,部門及子部門,本部門,本人資料,跨機構資料)
7、 快速編碼:提供基本功能模組的原始碼生成器,提高開發效率及質量。
5. 技術選型
1、後端
* 核心框架:Spring Framework 4.0
* 安全框架:Apache Shiro 1.2
* 檢視框架:Spring MVC 4.0
* 服務端驗證:Hibernate Validator 5.1
* 佈局框架:SiteMesh 2.4
* 工作流引擎:Activiti 5.15
* 任務排程:Spring Task 4.0
* 持久層框架:MyBatis 3.2
* 資料庫連線池:Alibaba Druid 1.0
* 快取框架:Ehcache 2.6、Redis
* 日誌管理:SLF4J 1.7、Log4j
* 工具類:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI 3.9
2、前端
* JS框架:JQuery 1.9。
* CSS框架:Twitter Bootstrap 2.3.1。
* 客戶端驗證:JQuery Validation Plugin 1.11。
* 富文字:CKEcitor
* 檔案管理:CKFinder
* 動態頁籤:Jerichotab
* 手機端框架:Jingle
* 資料表格:jqGrid
* 對話方塊:jQuery jBox
* 下拉選擇框:jQuery Select2
* 樹結構控制元件:jQuery zTree
* 日期控制元件: My97DatePicker
4、平臺
* 伺服器中介軟體:在Java EE 5規範(Servlet 2.5、JSP 2.1)下開發,支援應用伺服器中介軟體
有Tomcat 6、Jboss 7、WebLogic 10、WebSphere 8。
* 資料庫支援:目前僅提供Oracle資料庫的支援,但不限於資料庫,平臺留有其它資料庫支援介面,
可方便更改為其它資料庫,如:SqlServer 2008、MySql 5.5、H2等
* 開發環境:Java EE、Eclipse、Maven、Git
6. 必會基礎知識
1. 軟體工程基礎、Java語言基礎、JSP內建物件、EL表示式
2. Spring Framework:類的依賴、自動注入、事務處理
3. Spring MVC:URL對映、引數傳遞
4. Apache Shiro:安全攔截方式,應用方法,控制按鈕
5. SiteMesh:佈局框架的用法
6. JSP標準標籤庫(JSTL):if、choose、forEach、set
7. Spring MVC表單標籤庫:form、input、textarea、select、checkbox
8. 檔案存放規範,命名規範。
7. 學習索引
1. Spring Framework :
2. Spring MVC
3. Apache Shiro
· 官方文件
· 快速入門
4. SiteMesh 2.4
· 官方文件
5. Bootstrap 2.3
6. jQuery
· jQuery zTree: 官方文件
· jQruey jBox:官方文件
7. Activiti
· 官方網站
· 中文文件
8. Ehcache
· 官方文件
9. 其它資料
· 8. 安裝部署
1. 執行Maven目錄下的settings.bat檔案,用來設定maven倉庫路徑,並按提示操作(設定PATH系統變數、配置Eclipse)。
2. 執行jeesite/bin/eclipse.bat 生成工程檔案並下載jar依賴包(如果需要修改預設專案名,請開啟pom.xml修改第7行artifactId,然後再執行eclipse.bat檔案)。
3. 將 jeesite 工程匯入到eclipse,選中工程,按F5重新整理。
4. 設定資料來源:src/main/resources/jeesite.properties
5. 匯入資料表並初始化資料:執行db/init-db.bat檔案。(匯入時如果出現“drop”失敗提示資訊,請忽略。)
6. 新建Server(Tomcat),注意選擇以下兩個選項:
7. 配置server.xml的Connector項,增加URIEncoding="UTF-8"
8. 部署到Tomcat,設定Auto Reload為Disabled。
9. 訪問工程:http://127.0.0.1:8080/ jeesite 使用者名稱:thinkgem 密碼:admin
9. 常見問題
1. 'mvn' 不是內部或外部命令,原因如下
a) PATH未配置或配置了多個不一致的Maven地址,如使用者/系統變數。
b) M2_HOME系統/使用者變數地址不正確,可刪除M2_HOME變數。
c) 檢查mvn執行是否正常,cmd執行:mvn -v
2. 執行eclipse.bat 找不到檔案路徑或亂碼:一般原因是路徑中包含空格或中文。
3. 匯入到eclipse下找不到jar包:maven未配置,檢視m2_repo倉庫路徑是否正確。
4. 執行init-db.bat提示ORA-xxx:根據錯誤碼排除錯誤,一般是資料庫url不對,使用者名稱或密碼錯誤。
5. 部署時出現某某被鎖定,一般原因:Tomcat服務中的兩個選項未選中。
6. 字典列表,新增鍵值,出現亂碼:server.xml未配置url編碼為utf-8。
第2章 檔案結構與配置
作者:ThinkGem
更新日期:2014-4-8
1. 檔案結構
1.1. 原始碼目錄
src/main/java
com.thinkgem.jeesite |
Jeesite平臺目錄 |
├ common |
公共模組存放目錄 |
│ ├ beanvalidator |
實體Bean驗證相關類 |
│ ├ log |
日誌工具相關類 |
│ ├ mapper |
各種Object到Xml、Object到Json的對映轉換類 |
│ ├ persistence |
持久層相關類 |
│ ├ security |
安全相關類 |
│ ├ service |
業務層相關類 |
│ ├ servlet |
公共servlet相關類 |
│ ├ utils |
各種操作小工具類 |
│ └ web |
模型控制器層相關類 |
└ modules |
JeeSite內建功能模組存放目錄 |
├ act |
Activiti工作流引擎目錄 |
├ cms |
內容管理、新聞釋出模組目錄 |
├ gen |
Web版本程式碼生成器目錄 |
├ oa |
線上辦公模組演示用例存放目錄 |
└ sys |
系統核心模組存放目錄 |
├ dao |
資料訪問層相關類 |
├ entity |
實體相關類 |
├ interceptor |
系統模組攔截器相關類 |
├ service |
業務處相關類 |
├ web |
模型控制器層相關類 |
└ utils |
系統模組的工具類 |
1.2. 資源目錄
src/main/resource
act |
Activiti工作流引擎相關檔案(部署檔案、bpmn) |
cache |
Ehcache快取配置存放目錄 |
mappings |
Mybatis Sql對映檔案存放目錄 |