平臺簡介
JeeSite是基於多個優秀的開源項目,高度整合封裝而成的高效,高性能,強安全性的開源Java EE快速開發平臺。html
JeeSite自己是以Spring Framework爲核心容器,Spring MVC爲模型視圖控制器,MyBatis爲數據訪問層, Apache Shiro爲權限受權層,Ehcahe對經常使用數據進行緩存,Activit爲工做流引擎。前端
JeeSite主要定位於企業信息化領域,已內置企業信息化系統的基礎功能和高效的代碼生成工具, 包括:系統權限組件、數據權限組件、數據字典組件、核心工具組件、視圖操做組件、工做流組件、代碼生成等。 前端界面風格採用告終構簡單、性能優良、頁面美觀大氣的Twitter Bootstrap頁面展現框架。 採用分層設計、雙重驗證、提交數據安全編碼、密碼加密、訪問驗證、數據權限驗證。 使用Maven作項目管理,提升項目的易開發性、擴展性。linux
JeeSite目前包括如下三大模塊,系統管理(SYS)模塊、 內容管理(CMS)模塊、在線辦公(OA)模塊、代碼生成(GEN)模塊。 系統管理模塊 ,包括企業組織架構(用戶管理、機構管理、區域管理)、 菜單管理、角色權限管理、字典管理等功能; 內容管理模塊 ,包括內容管理(文章、連接),欄目管理、站點管理、 公共留言、文件管理、前端網站展現等功能; 在線辦公模塊 ,提供簡單的請假流程實例。git
JeeSite 提供了經常使用工具進行封裝,包括日誌工具、緩存工具、服務器端驗證、數據字典、當前組織機構數據 (用戶、機構、區域)以及其它經常使用小工具等。另外還提供一個強大的在線 代碼生成 工具, 此工具提供簡單的單表、一對多、樹結構功能的生成,若是對外觀要求不是很高,生成的功能就能夠用了。 若是你使用了JeeSite基礎框架,就能夠很高效的快速開發出,優秀的信息管理系統。github
內置功能
- 用戶管理:用戶是系統操做者,該功能主要完成系統用戶配置。
- 機構管理:配置系統組織機構(公司、部門、小組),樹結構展示,可隨意調整上下級。
- 區域管理:系統城市區域模型,如:國家、省市、地市、區縣的維護。
- 菜單管理:配置系統菜單,操做權限,按鈕權限標識等。
- 角色管理:角色菜單權限分配、設置角色按機構進行數據範圍權限劃分。
- 字典管理:對系統中常用的一些較爲固定的數據進行維護,如:是否、男女、類別、級別等。
- 操做日誌:系統正常操做日誌記錄和查詢;系統異常信息日誌記錄和查詢。
- 鏈接池監視:監視當期系統數據庫鏈接池狀態,可進行分析SQL找出系統性能瓶頸。
- 工做流引擎:實現業務工單流轉、在線流程設計器。
爲什麼選擇JeeSite
- 使用 Apache License 2.0 協議,源代碼徹底開源,無商業限制。
- 使用目前主流的Java EE開發框架,簡單易學,學習成本低。
- 數據庫無限制,目前支持MySql、Oracle,可擴充SQL Server、PostgreSQL、H2等。
- 模塊化設計,層次結構清晰。內置一系列企業信息管理的基礎功能。
- 操做權限控制精密細緻,對全部管理連接都進行權限驗證,可控制到按鈕。
- 數據權限控制精密細緻,對指定數據集權限進行過濾,七種數據權限可供選擇。
- 提供在線功能代碼生成工具,提升開發效率及質量。
- 提供經常使用工具類封裝,日誌、緩存、驗證、字典、組織機構等,經常使用標籤(taglib),獲取當前組織機構、字典等數據。
- 兼容目前最流行瀏覽器(IE7+、Chrome、Firefox)IE6也支持,但體驗效果差。
技術選型
一、後端數據庫
- 核心框架:Spring Framework 4.0
- 安全框架:Apache Shiro 1.2
- 視圖框架:Spring MVC 4.0
- 服務端驗證:Hibernate Validator 5.1
- 佈局框架:SiteMesh 2.4
- 工做流引擎:Activiti 5.1五、FoxBPM 6
- 任務調度:Spring Task 4.0
- 持久層框架:MyBatis 3.2
- 數據庫鏈接池:Alibaba Druid 1.0
- 緩存框架:Ehcache 2.六、Redis
- 日誌管理:SLF4J 1.七、Log4j
- 工具類:Apache Commons、Jackson 2.二、Xstream 1.四、Dozer 5.三、POI 3.9
二、前端apache
- 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
四、平臺後端
- 服務器中間件:在Java EE 5規範(Servlet 2.五、JSP 2.1)下開發,支持應用服務器中間件 有Tomcat 六、Jboss 七、WebLogic 十、WebSphere 8。
- 數據庫支持:目前僅提供MySql和Oracle數據庫的支持,但不限於數據庫,平臺留有其它數據庫支持接口, 可方便更改成其它數據庫,如:SqlServer 200八、MySql 5.五、H2等
- 開發環境:Java EE、Eclipse、Maven、Git
安全考慮
- 開發語言:系統採用Java 語言開發,具備卓越的通用性、高效性、平臺移植性和安全性。
- 分層設計:(數據庫層,數據訪問層,業務邏輯層,展現層)層次清楚,低耦合,各層必須經過接口才能接入並進行參數校驗(如:在展現層不可直接操做數據庫),保證數據操做的安全。
- 雙重驗證:用戶表單提交雙驗證:包括服務器端驗證及客戶端驗證,防止用戶經過瀏覽器惡意修改(如不可寫文本域、隱藏變量篡改、上傳非法文件等),跳過客戶端驗證操做數據庫。
- 安全編碼:用戶表單提交全部數據,在服務器端都進行安全編碼,防止用戶提交非法腳本及SQL注入獲取敏感數據等,確保數據安全。
- 密碼加密:登陸用戶密碼進行SHA1散列加密,此加密方法是不可逆的。保證密文泄露後的安全問題。
- 強制訪問:系統對全部管理端連接都進行用戶身份權限驗證,防止用戶直接填寫url進行訪問。
快速體驗
- 具有運行環境:JDK1.6+、Maven3.0+、MySql5+或Oracle10g+。
- 修改src\main\resources\jeesite.properties文件中的數據庫設置參數。
- 根據修改參數建立對應MySql或Oracle數據庫用戶和參數。
- 運行bin\init-db.bat腳本,便可導入表結構及演示數據(linux操做系統:在控制檯中切換至項目根目錄,運行命令:mvn antrun:run -Pinit-db)
- 運行bin\run-tomcat7.bat或bin\run-jetty.bat,啓動Web服務器(第一次運行,須要下載依賴jar包,請耐心等待)。
- 最高管理員帳號,用戶名:thinkgem 密碼:admin
常見問題
- 有時出現文字亂碼:修改Tomcat的server.xml文件的Connector項,增長URIEncoding="UTF-8"
- 用一段時間提示內存溢出,請修改JVM參數:-Xmx512m -XX:MaxPermSize=256m
- 爲何新建菜單後看不到新建的菜單?由於受權問題,菜單管理只容許最高管理員帳號管理(最高管理員默認帳號:thinkgem 密碼:admin)。
更多文檔
如何交流、反饋、參與貢獻?
一我的的我的能力再強,也沒法打敗一個團隊,但願兄弟姐妹的支持,可以貢獻出本身的部分代碼,參與進來共同完善它(^_^)。瀏覽器
怎麼共享個人代碼:手把手教你如何加入到github的開源世界!緩存
版權聲明
本軟件使用 Apache License 2.0 協議,請嚴格遵守協議內容:
- 須要給代碼的用戶一份Apache Licence。
- 若是你修改了代碼,須要在被修改的文件中說明。
- 在延伸的代碼中(修改和有源代碼衍生的代碼中)須要帶有原來代碼中的協議,商標,專利聲明和其餘原來做者規定須要包含的說明。
- 若是再發布的產品中包含一個Notice文件,則在Notice文件中須要帶有Apache Licence。你能夠在Notice中增長本身的許可,但不能夠表現爲對Apache Licence構成更改。
- Apache Licence也是對商業應用友好的許可。使用者也能夠在須要的時候修改代碼來知足須要並做爲開源或商業產品發佈/銷售
爲什麼使用MyBatis
-
學習成本:Hibernate的真正掌握要比Mybatis來得難很多。Mybatis框架相對簡單很容易上手,也更加靈活。 對於學習過Hibernate的用戶,學習起MyBatis也更容易上手。
-
開發成本:你們都說Hibernate開發效率高,我的認爲MyBatis的開發效率並不比Hibernate低, 經過代碼生成器和封裝開發效率不是問題,而且MyBatis可控性比較高,並更易於維護。
-
性能方面:因爲Hibernate比較難以掌握,性能方面也成爲了Hibernate的問題瓶頸,固然若是你對Hibernate很是熟, Hibernate性能上定不是問題。但對於大多數狀況下,真正掌握Hibernate的人少之又少,然而的也就造就了項目風險加大。
-
多數據庫支持:有些人說MyBatis對多數據庫支持困難,我認爲這個不是問題,雖然說目前JeeSite僅提供對MySql或Oracle 數據庫的支持,但對於支持其它數據庫的改動也不是很麻煩,SQL是被專門寫在XML中,對於大多數SQL來講都是通用的, 對於不一樣的數據庫可經過dbName區分和修改各別的SQL片斷便可。