一款企業信息化開發基礎平臺,能夠用於快速構建企業後臺管理系統,集成了OA(辦公自動化)、SCM(供應鏈系統)、ERP(企業資源管理系統)、CMS(內容管理系統)、CRM(客戶關係管理系統)等企業系統的通用業務功能。Github連接:https://github.com/u014427391/jeeplatform
歡迎下載或者star(收藏)前端
JeePlatform項目是一款以Activiti爲工做流引擎,以Spring Framework爲核心框架,集ORM框架Mybatis,Web層框架SpringMVC和多種開源組件框架而成的一款通用基礎平臺,基於本平臺能夠實現快速開發,實現企業信息管理的高效、高性能開發。系統追求安全、性能方面的有效實現。項目還在開發中。。。nginx
管理系統登陸頁面,採用Shiro登陸驗證
git
管理系統主頁前端,能夠適配移動端頁面
github
管理系統主頁採用開源前端模板,具備換膚功能
web
管理系統主頁,獲取用戶具備的權限,顯示菜單
redis
角色進行受權,只有超級管理員才具備權限
spring
角色進行配置,能夠學習一下RBAC(基於角色的權限控制)
數據庫
使用JavaEmail插件實現郵件發送,記得須要開啓SSl驗證
緩存
項目採用CAS登陸登陸實現,單點登陸集羣搭建能夠參考博客:
http://blog.csdn.net/u014427391/article/details/78653482
項目單點登陸:使用nginx做爲負載均衡,使用redis存儲tomcat session,來實現集羣中tomcat session的共享,使用redis做爲cas ticket的倉庫,來實現集羣中cas ticket的一致性。tomcat
單點登陸集羣如圖
先從Redis裏獲取緩存,查詢不到,就查詢MySQL數據庫,而後再保存到Redis緩存裏,下次查詢時直接調用Redis緩存
package org.muses.jeeplatform.cache;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; /** * AOP實現Redis緩存處理 */ @Component @Aspect public class RedisAspect { private static final Logger LOGGER = LoggerFactory.getLogger(RedisAspect.class); @Autowired @Qualifier("redisCache") private RedisCache redisCache; /** * 攔截全部元註解RedisCache註解的方法 */ @Pointcut("@annotation(org.muses.jeeplatform.annotation.RedisCache)") public void pointcutMethod(){ } /** * 環繞處理,先從Redis裏獲取緩存,查詢不到,就查詢MySQL數據庫, * 而後再保存到Redis緩存裏 * @param joinPoint * @return */ @Around("pointcutMethod()") public Object around(ProceedingJoinPoint joinPoint){ //前置:從Redis裏獲取緩存 //先獲取目標方法參數 long startTime = System.currentTimeMillis(); String applId = null; Object[] args = joinPoint.getArgs(); if (args != null && args.length > 0) { applId = String.valueOf(args[0]); } //獲取目標方法所在類 String target = joinPoint.getTarget().toString(); String className = target.split("@")[0]; //獲取目標方法的方法名稱 String methodName = joinPoint.getSignature().getName(); //redis中key格式: applId:方法名稱 String redisKey = applId + ":" + className + "." + methodName; Object obj = redisCache.getDataFromRedis(redisKey); if(obj!=null){ LOGGER.info("**********從Redis中查到了數據**********"); LOGGER.info("Redis的KEY值:"+redisKey); LOGGER.info("REDIS的VALUE值:"+obj.toString()); return obj; } long endTime = System.currentTimeMillis(); LOGGER.info("Redis緩存AOP處理所用時間:"+(endTime-startTime)); LOGGER.info("**********沒有從Redis查到數據**********"); try{ obj = joinPoint.proceed(); }catch(Throwable e){ e.printStackTrace(); } LOGGER.info("**********開始從MySQL查詢數據**********"); //後置:將數據庫查到的數據保存到Redis String code = redisCache.saveDataToRedis(redisKey,obj); if(code.equals("OK")){ LOGGER.info("**********數據成功保存到Redis緩存!!!**********"); LOGGER.info("Redis的KEY值:"+redisKey); LOGGER.info("REDIS的VALUE值:"+obj.toString()); } return obj; } }
能夠看到Redis裏保存到了緩存
通用接口:SMS(短信)、系統郵件、Excel表導出導入操做...
人事管理:機構管理、部門管理、員工管理
Github連接:https://github.com/u014427391/jeeplatform歡迎下載或者star(收藏)