JeeSite信息化快速開發平台


 平台簡介

JeeSite是基於多個優秀的開源項目,高度整合封裝而成的高效,高性能,強安全性的開源Java EE快速開發平台。

JeeSite是您快速完成項目的最佳基礎平台解決方案,JeeSite是您想學習Java平台的最佳學習案例,JeeSite還是接私活的最佳助手。

JeeSite是在Spring Framework基礎上搭建的一個Java基礎開發平台,以Spring MVC為模型視圖控制器,MyBatis為數據訪問層, Apache Shiro為權限授權層,Ehcahe對常用數據進行緩存,Activit為工作流引擎。是JavaEE界的最佳整合。

JeeSite主要定位於信息化領域,已內置信息化系統的基礎功能和高效的代碼生成工具, 包括:系統權限組件、數據權限組件、數據字典組件、核心工具組件、視圖操作組件、工作流組件、代碼生成等。 前端界面風格采用了結構簡單、性能優良、頁面美觀大氣的Twitter Bootstrap頁面展示框架。 采用分層設計、雙重驗證、提交數據安全編碼、密碼加密、訪問驗證、數據權限驗證。 使用Maven做項目管理,提高項目的易開發性、擴展性。

JeeSite目前包括以下三大模塊,系統管理(SYS)模塊、 內容管理(CMS)模塊、在線辦公(OA)模塊、代碼生成(GEN)模塊。 系統管理模塊,包括組織架構(用戶管理、機構管理、區域管理)、 菜單管理、角色權限管理、字典管理等功能; 內容管理模塊 ,包括內容管理(文章、鏈接),欄目管理、站點管理、 公共留言、文件管理、前端網站展示等功能; 在線辦公模塊 ,提供簡單的請假流程實例。,提供簡單的請假流程實例;代碼生成模塊 ,完成重復的工作

JeeSite 提供了常用工具進行封裝,包括日志工具、緩存工具、服務器端驗證、數據字典、當前組織機構數據 (用戶、機構、區域)以及其它常用小工具等。另外還提供一個強大的在線 代碼生成 工具, 此工具提供簡單的單表、一對多、樹結構功能的生成,如果對外觀要求不是很高,生成的功能就可以用了。 如果你使用了JeeSite基礎框架,就可以很高效的快速開發出,優秀的信息管理系統。

內置功能

    用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置。
  1. 機構管理:配置系統組織機構(公司、部門、小組),樹結構展現,可隨意調整上下級。
  2. 區域管理:系統城市區域模型,如:國家、省市、地市、區縣的維護。
  3. 菜單管理:配置系統菜單,操作權限,按鈕權限標識等。
  4. 角色管理:角色菜單權限分配、設置角色按機構進行數據范圍權限划分。
  5. 字典管理:對系統中經常使用的一些較為固定的數據進行維護,如:是否、男女、類別、級別等。
  6. 操作日志:系統正常操作日志記錄和查詢;系統異常信息日志記錄和查詢。
  7. 連接池監視:監視當期系統數據庫連接池狀態,可進行分析SQL找出系統性能瓶頸。
  8. 工作流引擎:實現業務工單流轉、在線流程設計器。

為何選擇JeeSite

      使用 

Apache License 2.0

     協議,源代碼完全開源,無商業限制。
  1. 使用目前主流的Java EE開發框架,簡單易學,學習成本低。
  2. 數據庫無限制,目前支持MySql、Oracle,可擴充SQL Server、PostgreSQL、H2等。
  3. 模塊化設計,層次結構清晰。內置一系列信息管理的基礎功能。
  4. 操作權限控制精密細致,對所有管理鏈接都進行權限驗證,可控制到按鈕。
  5. 數據權限控制精密細致,對指定數據集權限進行過濾,七種數據權限可供選擇。
  6. 提供在線功能代碼生成工具,提高開發效率及質量。
  7. 提供常用工具類封裝,日志、緩存、驗證、字典、組織機構等,常用標簽(taglib),獲取當前組織機構、字典等數據。
  8. 兼容目前最流行瀏覽器(IE7+、Chrome、Firefox)IE6也支持,但體驗效果差。

技術選型

1、后端

    核心框架:Spring Framework 4.1
  • 安全框架:Apache Shiro 1.2
  • 視圖框架:Spring MVC 4.1
  • 服務端驗證:Hibernate Validator 5.2
  • 布局框架:SiteMesh 2.4
  • 工作流引擎:Activiti 5.21
  • 任務調度:Spring Task 4.1
  • 持久層框架: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(穩定是后台,UI方面根據需求自己升級改造吧)。
  • 客戶端驗證:JQuery Validation Plugin 1.11。
  • 富文本在線編輯:CKEditor
  • 在線文件管理: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+。
  • 數據庫支持:目前僅提供MySql或Oracle數據庫的支持,但不限於數據庫,平台留有其它數據庫支持接口, 你可以很方便的更改為其它數據庫,如:SqlServer 2008、MySql 5.5、H2等
  • 開發環境:Java、Eclipse Java EE 4.3、Maven 3.1、Git

安全考慮

    開發語言:系統采用Java 語言開發,具有卓越的通用性、高效性、平台移植性和安全性。
  1. 分層設計:(數據庫層,數據訪問層,業務邏輯層,展示層)層次清楚,低耦合,各層必須通過接口才能接入並進行參數校驗(如:在展示層不可直接操作數據庫),保證數據操作的安全。
  2. 雙重驗證:用戶表單提交雙驗證:包括服務器端驗證及客戶端驗證,防止用戶通過瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等),跳過客戶端驗證操作數據庫。
  3. 安全編碼:用戶表單提交所有數據,在服務器端都進行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數據等,確保數據安全。
  4. 密碼加密:登錄用戶密碼進行SHA1散列加密,此加密方法是不可逆的。保證密文泄露后的安全問題。
  5. 強制訪問:系統對所有管理端鏈接都進行用戶身份權限驗證,防止用戶

快速體驗

    具備運行環境:JDK1.6+、Maven3.0+、MySql5+或Oracle10g+。
  1. 修改src\main\resources\jeesite.properties文件中的數據庫設置參數。
  2. 根據修改參數創建對應MySql或Oracle數據庫用戶和參數。
  3. 運行bin\init-db.bat腳本,即可導入表結構及演示數據(linux操作系統:在控制台中切換至項目根目錄,運行命令:mvn antrun:run -Pinit-db)
  4. 運行bin\run-tomcat7.bat或bin\run-jetty.bat,啟動Web服務器(第一次運行,需要下載依賴jar包,請耐心等待)。
  5. 最高管理員賬號,用戶名:thinkgem 密碼:admin

常見問題

    用一段時間提示內存溢出,請修改JVM參數:-Xmx512m -XX:MaxPermSize=256m
  1. 有時出現文字亂碼:修改Tomcat的server.xml文件的Connector項,增加URIEncoding="UTF-8"
  2. 為什么新建菜單后看不到新建的菜單?因為授權問題,菜單管理只允許最高管理員賬號管理(最高管理員默認賬號:thinkgem 密碼:admin)。

更多文檔

    https://github.com/thinkgem/jeesite/tree/master/doc

如何交流、反饋、參與貢獻?

一個人的個人能力再強,也無法戰勝一個團隊,希望兄弟姐妹的支持,能夠貢獻出自己的部分代碼,參與進來共同完善它(_)。

怎么共享我的代碼:手把手教你如何加入到github的開源世界!

版權聲明

本軟件使用 Apache License 2.0 協議,請嚴格遵照協議內容:

    需要給代碼的用戶一份Apache Licence。
  1. 如果你修改了代碼,需要在被修改的文件中說明。
  2. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
  3. 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
  4. Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售
  5. 你可以二次包裝出售,但還請保留文件中的版權和作者信息,並在你的產品說明中注明JeeSite。
  6. 你可以以任何方式獲得,你可以修改包名或類名,但還請保留文件中的版權和作者信息。

為何使用MyBatis

      學習成本:Hibernate的真正掌握要比Mybatis來得難不少。Mybatis框架相對簡單很容易上手,也更加靈活。 對於學習過Hibernate的用戶,學習起MyBatis也更容易上手。

 

  • 開發成本:大家都說Hibernate開發效率高,個人認為MyBatis的開發效率並不比Hibernate低, 通過代碼生成器和封裝開發效率不是問題,並且MyBatis可控性比較高,並更易於維護。

  • 性能方面:由於Hibernate比較難以掌握,性能方面也成為了Hibernate的問題瓶頸,當然如果你對Hibernate非常熟, Hibernate性能上定不是問題。但對於大多數情況下,真正掌握Hibernate的人少之又少,然而的也就造就了項目風險加大。

  • 多數據庫支持:有些人說MyBatis對多數據庫支持困難,我認為這個不是問題,雖說目前JeeSite僅提供對MySql和Oracle 數據庫的支持,但對於支持其它數據庫的改動也不是很麻煩,SQL是被專門寫在XML中,對於大多數SQL來說都是通用的, 對於不同的數據庫可通過dbName區分和修改各別的SQL片段即可。

 

Release Notes

V1.2.7

Release Date: Tuesday, July 19, 2016

具體升級內容,請關注Git提交日志。
 

V1.2.6

Release Date: Tuesday, March 10, 2015

改進 將工程全面轉型Mybatis;架構重構優化;各種依賴庫的升級;引入在線代碼生成工具;工作流引擎完善;封裝jqGrid組件;支持Servlet容器更廣泛;性能的顯著提升;學習文檔完善;
 

V1.1.0

Release Date: Friday, August 16, 2013

去掉spring data jpa,直接使用hibernate;引入MyBatis。
 

V1.0.3

Release Date: Friday, April 19, 2013

改進問題 添加批量保存菜單排序功能
 
改進 實體增加@DynamicInsert和@DynamicUpdate注解,只插入或更新需要更新的字段
 
改進 使用ERMaster數據建模,DbUnit數據文件將xml類型更改為xls類型,分模塊存放
 
改進 界面改為緊湊風格
 
改進 增加單元測試公共基類;Hibernate升級到4.2;Hibernate Validator升級到5.0.1
 
改進 系統緩存調成,減少cms與sys模塊的耦合。
 
新增 增加DataEntity數據實體,包含:備注、創建者、創建時間、更新者、更新時間、刪除標記字段
 
新增 增加sql server驅動及建表腳本
 
新增 集成Activiti5.12工作流引擎,提供簡單請假的例子
 
新增 新增數據集權限控制
 
新增 登錄3次錯誤后,輸入驗證碼
 
缺陷 評論模塊,查看文檔
 
缺陷 消息提醒框的優化
 
缺陷 AJAX傳參 415錯誤
 
缺陷 權限設計邏輯bug
 
缺陷 userForm.jsp 保存按鈕授權bug
 
缺陷 fns:getConfig無相應的properties kv定義時報錯
 
缺陷 獲取用戶緩存增加defaultValue默認值參數;修正取不到SecurityManager拋出異常問題。
 
缺陷 修正導出excel大數據量的時候內存溢出問題。
 
缺陷 修正頁面大小設置為0的時候出錯問題。
 

V1.0.2

Release Date: Friday, March 29, 2013

改進新增 菜單管理:增加圖標顯示,修改增加圖標選擇對話框,tags:iconselect。感謝songlai提供。
 
改進新增 登錄界面小改版,可切換主題樣式(內置5種主題),前端網站改版,bootstrap升級至2.3.1
 
改進 非超級管理員可以管理自己創建的,系統角色、系統菜單、內容欄目。
 
改進 數據庫連接池有bonecp更換為alibaba的druid。
 
新增 樹選擇控件,增加搜索功能。感謝:聯何的貢獻
 
新增 Excel導出導入組件完善
 
新增 增加驗證碼Tag(validateCode.tag)
 
缺陷 BaseDaoImpl 中獲取page總條數時, DB2 等數據庫 select count() 時不能有排序條件(order by)
 
缺陷 關於字符串截斷問題
 

V1.0.1

Release Date: Saturday, March 9, 2013

改進 將js樹控件改為zTree控件,更簡單易用
 
改進 增加Globle類,用來配置全局屬性值;一些常用配置加入到application.properties中,將BaseController中的常量移動到Globle。
 
改進 將管理端url裝飾方式改為meta裝飾方式,這樣裝飾更自由;403、404、500頁面進行裝飾
 
改進 注解優化,Dao層的Component注解改為Repository;Service層的Component注解改為Service
 
改進 優化bean驗證,驗證失敗后改為返回表單頁面,優化字典表工具類。
 
改進 更新管理菜單為三級展示
 
改進 增強分頁界面功能
 
改進 升級版本依賴庫
 
新增 使用annotation以最小化配置,完成Excel導出導入組件。
 
新增 用戶管理界面增加Table排序功能
 
新增 增加CMS站點切換頁面,納入站點管理菜單中。
 
新增 新增Oracle建表腳本
 
缺陷 修正在登錄時選擇記住登錄狀態,在系統刪除該用戶之后,打開登錄頁出錯問題。
 
缺陷 解決線程安全隱患,去除BaseController的request、response等
 

V1.0.0

Release Date: Saturday, February 23, 2013

新增 V1.0.0代碼提


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM