JEEPlatform

一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公自动化)、SCM(供应链系统)、ERP(企业资源管理系统)、CMS(内容管理系统)、CRM(客户关系管理系统)等企业系统的通用业务功能。Github链接:https://github.com/u014427391/jeeplatform
欢迎下载或者star(收藏)

JeePlatform项目是一款以Activiti为工作流引擎,以Spring Framework为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,基于本平台可以实现快速开发,实现企业信息管理的高效、高性能开发。系统追求安全、性能方面的有效实现。

系统设计

系统管理(模块名称jeeplatform-admin)

管理系统登录页面,采用Shiro登录验证
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mz18g3j7-1572658864263)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/管理系统登录页面.png)]

管理系统主页前端,可以适配移动端页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3axel2n-1572658864265)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/适配移动端.png)]

管理系统主页采用开源前端模板,具有换肤功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sF0VHrXy-1572658864266)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/系统主页墨绿主题.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtVQ92zp-1572658864267)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/系统主页清新主题.png)]

管理系统主页,获取用户具有的权限,显示菜单
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2LReRxmt-1572658864267)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/管理系统主页.png)]

角色进行授权,只有超级管理员才具有权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uIXUu0sA-1572658864268)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/角色授权.png)]

角色进行配置,可以学习一下RBAC(基于角色的权限控制)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6mFFxxQO-1572658864268)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/角色配置.png)]

使用JavaEmail插件实现邮件发送,记得需要开启SSl验证
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgHkbjuT-1572658864269)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/发送邮件.png)]

OA管理系统(待开发)

CMS管理系统(待开发)

系统升级

单点登录基础(模块名称jeeplatform-sso)(开发中)

项目采用CAS登录登录实现,单点登录集群搭建可以参考博客:
http://blog.csdn.net/u014427391/article/details/78653482
项目单点登录:使用nginx作为负载均衡,使用redis存储tomcat session,来实现集群中tomcat session的共享,使用redis作为cas ticket的仓库,来实现集群中cas ticket的一致性。

单点登录集群如图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pKgeCvYX-1572658864269)(https://github.com/u014427391/jeeplatform/raw/master/screenshot/单点登录集群.png)]

SpringBoot集成Redis缓存处理(Spring AOP实现)

先从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查询数据**********");//后置:将数据库查到的数据保存到RedisString 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里保存到了缓存

业务方案

系统管理通用功能

  • 用户管理: 系统用户 OK
  • 角色管理: 按照企业系统职能进行角色分配,每个角色具有不同的系统操作权限 OK
  • 权限管理: 权限管理细分到系统按钮权限,菜单权限,管理员可以对权限进行细分控制
  • 在线管理:管理在线用户,可以强制下线
  • 菜单管理:系统可以配置系统菜单,并分配不同的权限 OK
  • 报表统计:数据报表、用户分析
  • 系统监控:数据监控、系统日志(用户登录记录)
  • 通用接口:SMS(短信)、系统邮件、Excel表导出导入操作…

OA系统通用功能(待开发)

  • 考勤管理:请假流程
  • 人事管理:机构管理、部门管理、员工管理

CMS系统通用功能(待开发)

  • 信息管理:文章管理、文章审核

技术方案

后台技术

  • 工作流引擎:Activiti5
  • ORM框架:Mybatis/Hibernate JPA
  • Web框架:SpringMVC
  • 核心框架:Spring Framework4.0
  • 任务调度:Spring Task
  • 权限安全:Apache Shiro/Spring Security
  • 全文搜索引擎:Lucene/Solr
  • 页面静态化处理:Freemark/Velocity
  • 服务器页面包含技术:SSI
  • 网页即时通讯:long polling/websocket
  • 连接池:Druid(阿里开源)
  • 日志处理:SLF4J
  • 缓存处理:Redis、EhCache
  • Excel表处理:POI

前端技术

  • 文件上传:JQuery uploadify
  • 树形结构:EasyUI Tree
  • 日期插件:JQuery Date
  • 弹窗框架:zDialog
  • Cookie保存:JQuery Cookie
  • 富文本编辑器:Baidu UEDitor
  • 前端框架:Twitter Bootstrap、ExtJS

服务器

  • 负载均衡:Nginx
  • 分布式:alibaba Dubbo
  • 中间件:RocketMQ

项目测试

  • DeBug:Junit、FindBugs、EclEmma
  • 程序质量:Jdepend4eclipse
  • 压力测试:JMeter

工具软件

  • 服务器:SecureCRT
  • Java:IntelliJ IDEA/Eclipse
  • 远程控制:TeamViewer
  • 版本控制:Git
  • Jar管理:Maven
  • UML建模:ArgoUML
  • Eclipse测试插件:EclEmma
  • 程序质量检查插件:Jdepend4eclipse(Eclipse平台)

Github链接:https://github.com/u014427391/jeeplatform
欢迎下载或者star(收藏)

基础平台项目之设计方案相关推荐

  1. 基础平台项目之集成Jquery.pagination.js实现分页

    本博客介绍基于Spring Data这款orm框架加上 Jquery.pagination插件实现的分页功能. 本博客是基于一款正在开发中的github开源项目的,项目代码地址:https://git ...

  2. SpringBoot开源项目(企业信息化基础平台)

    JEEPlatform 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公自动化).SCM(供应链系统).ERP(企业资源管理系统).CMS(内容管理系统).CRM(客户关 ...

  3. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  4. 华为聚焦AI基础平台,加速行业智能化落地

    https://www.toutiao.com/a6688975045215126020/ 2019-05-09 18:39:46 今日,在2019全球人工智能产品应用博览会上,华为公司云BU副总裁朱 ...

  5. 「回顾」网易数据基础平台建设

    首先简单介绍一下网易杭州研究院情况简介,如下图所示: 我们公司主要从事平台技术开发和建设方面,工作的重点方向主要在解决用户在数据治理中的各种问题,让用户能更高效地管理自己的数据,进而产生更大的价值,比 ...

  6. 如何利用极致业务基础平台主界面容器工具配置出漂亮的业务系统

    1.经过前面的大致设计,我们进销存基础资料就做好了.如下图: 因为中间太空洞了,所以我们可以将右边一些功能,放在中间空白区域,这只要在该界面上设置界面显示方式为ShowBoth即可,这样中间右边都可以 ...

  7. python从零基础到项目实战怎么样-Python 3.x网络爬虫从零基础到项目实战

    ● 案例完整 本书中的所有案例都是通过"理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果"这种完善的结构进行讲解的.此外,复杂的案例配有项目结构图,有难度的案例还分析了底层 ...

  8. 业务基础平台产品的现状和发展

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 现在市场上如雨 ...

  9. AIADATA 独家深度解密:百度XuperChain开源区块链基础平台

    AIADATA 独家深度解密:百度XuperChain开源区块链基础平台 百度超级链Xuperchain正式宣布开源.根据官网显示,链内并行技术.可插拔共识机制.一体化智能合约等四大技术支撑开源,让区 ...

最新文章

  1. 数字图像处理:第三章 灰度直方图
  2. Angularjs Services
  3. 深度解析windows调试技术之一 [抓取user mode dump文件的几重境界]
  4. 具有内部类构造函数参数的Java Reflection奇数
  5. php 自带缓存,封装ThinkPhP自带的缓存机制
  6. linux下的磁盘空间使用
  7. IDEA配置码云Gitee的使用详解
  8. Asp.net web api 知多少
  9. java 字符串和整型的相互转换
  10. 第三季-第22课-网络协议分析
  11. 学会python可以上天!20行代码获取斗鱼平台房间数据,就是这么牛逼!
  12. 三星s7250d下载php,HTML5表现令人满意_三星 S7250D(Wave M)_手机其它OS-中关村在线...
  13. 华为交换机 查ip冲突_华为交换机如何查看本交换机IP地址?
  14. 有人在远程使用计算机是什么意思,如何远程控制计算机,计算机远程控制有什么用途...
  15. STM32CUBEMX_定时器控制LED闪烁
  16. 他一年写了200篇原创笔记,帮助你快速入门Python与机器学习
  17. caps scrlk numlk 闪烁
  18. 全网最详细教程整理,Python自动化操作PPT总结归纳
  19. mysql导vertica_vertica从其他表迁移数据到新表(insertinto语句用法实例)
  20. 【图像分割】基于收缩系数的粒子群混合引力搜索算法多级图像阈值分割算法研究附matlab代码

热门文章

  1. 分离单词,瓦尔登英语单词出现频率
  2. 快消品营销模式变革:一物一码BC一体化营销
  3. Firefox24 添加安全例外
  4. 庆国庆60周年 产品阅兵式
  5. [oeasy]python0033_回车_carriage_return_figlet_字体变大
  6. java实现图片放大缩小:
  7. 人们为什么都喜欢大屏手机
  8. 【python 数据挖掘】基于matplotlib的绘图一:四种基本图形及其参数
  9. 07Word自动生成图表目录
  10. 数据库多表联合查询附简单例子