• Stars
    star
    1,424
  • Rank 33,043 (Top 0.7 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区

Build Status Join the chat at https://gitter.im/jeeplatform/community

一、项目简介

JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区:https://www.oschina.net/p/jeeplatform

代码结构图:

├─jeeplatform----------------------------父项目,公共依赖
│  │
│  ├─jeeplatform-admin--------------------------基础管理系统
│  │
│  ├─jeeplatform-cms-----------------------内容管理系统
│  │
│  ├─jeeplatform-common--------------------------通用工程
│  │
│  ├─jeeplatform-oa--------------------------协调办公系统
|  |
|  |─jeeplatform-provider-----------------------平台服务中心
│  │
│  ├─jeeplatform-provider-api-----------------------平台服务API
|  |
│  ├─jeeplatform-sso-cas-----------------------CAS单点登录服务端
│  │
│  ├─jeeplatform--sso-oauth2---------------OAuth2.0单点登录服务端
│  │ 

二、系统设计

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

管理系统登录页面 ps:登录链接一般为:http://127.0.0.1:8080/jeeplatform/login Image text

管理系统主页前端,可以适配移动端页面 Image text

管理系统主页采用开源前端模板,具有换肤功能 Image text

Image text

管理系统主页,获取用户具有的权限,显示菜单 Image text

角色进行授权,只有超级管理员才具有权限 Image text

角色进行配置,可以学习一下RBAC(基于角色的权限控制) Image text

使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 Image text

OA管理系统(待开发)

接入CAS Server实现单点登录

CMS管理系统(待开发)

暂时接入Oauth2.0实现的单点登录系统

三、关键技术

CAS单点登录基础(模块名称jeeplatform-sso-cas)(功能修整中)

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

图来自官网,这里简单介绍一下,从图可以看出,CAS支持多种方式的认证,一种是LDAP的、比较常见的数据库Database的JDBC,还有Active Directory等等;支持的协议有Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等

这里写图片描述

这里写图片描述

单点登录集群方案如图 Image text

OAuth2.0单点登录基础(模块名称jeeplatform-sso-oauth2)(功能修整中)

在这里插入图片描述

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

先从Redis里获取缓存,查询不到,就查询MySQL数据库,然后再保存到Redis缓存里,下次查询时直接调用Redis缓存,详情参考博客:链接

这里写图片描述

可以看到Redis里保存到了缓存

这里写图片描述

四、业务方案

系统管理通用功能

  • 单点登录: OAuth2.0+JWT单点登录/CAS单点登录
  • 用户管理: 系统用户
  • 角色管理: 按照企业系统职能进行角色分配,每个角色具有不同的系统操作权限
  • 权限管理: 权限管理细分到系统菜单权限
  • 在线管理:管理在线用户,可以强制下线
  • 菜单管理:系统可以配置系统菜单,并分配不同的权限
  • 报表统计:数据报表、用户分析
  • 系统监控:数据库等方面监控(采用Druid提供的)
  • 在线文档:SwaggerUI API在线文档管理
  • 通用接口:系统邮件发送功能、Excel报表功能

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

  • 单点登录: CAS单点登录
  • 考勤管理:请假流程
  • 人事管理:机构管理、部门管理、员工管理

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

  • 单点登录: OAuth2.0+JWT单点登录
  • 信息管理:文章管理、文章审核 ...

五、技术方案

后台技术

  • 工作流引擎:Activiti5(待定)
  • ORM框架:Mybatis
  • Web框架:SpringMVC
  • 核心框架:SpringBoot
  • 任务调度:Spring Task(待定)
  • 权限安全:Apache Shiro、Spring Security
  • 全文搜索引擎:Lucene(待定)
  • 模板引擎:JSP(还没使用Thymeleaf,前端需要重构)
  • 服务器页面包含技术:SSI(待定)
  • 网页即时通讯:websocket
  • 连接池:Druid(阿里开源)
  • 日志处理:SLF4J(日志门面框架)、logback
  • 缓存处理:Redis
  • Excel表处理:POI

前端技术

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

六、常见问题

运行jeeplatform打开页面404,如果是用idea的,就可以edit configurations->configuration->edit working directory设置为:$MODULE_DIR$

七、版本说明

  • master版本 主干版本,实现简单的权限管理,单点登录方案有CAS和OAuth2.0+JWT两种方案,admin暂时没接单点,oa工程对接cas,cms对接OAuth2.0实现单点登录,微服务只是做了个demo,还没进行项目服务处理,所以并没有merge代码

  • dev版本 dev版本代码和master分支基本一致

  • 1.0.0版本 基础版,基本实现简单的权限管理,功能还需改善,权限控制还需要进行细粒度控制

  • 1.1.0版本 进行单点登录对接实验的版本,拟采用两种方案,CAS实现的单点登录和OAuth2.0+JWT单点登录,admin工程暂时还没对接,oa工程对接CAS,cms工程对接OAuth2.0

八、项目技术博客介绍

为了帮助学习者更好地理解代码,下面给出自己写的一些博客链接

Java框架

SpringBoot

我的Springboot系列博客可以参考我的专栏:SpringBoot系列博客

RPC框架

单点登录

Docker笔记

More Repositories

1

taoshop

开源电子商务项目,SpringBoot+Dubbo技术栈实现微服务,实现一款分布式集群的电商系统. 项目releases链接:https://github.com/u014427391/taoshop/releases (开发中...)
Java
531
star
2

travelapp

旅游自助系统。分为Android APP和Web管理系统JAVA旅游自助系统, 是一套开源的项目,系统具有完整的源代码和数据库,以及配套的文档。因为是一个课程设计,功能很简单,所以只能参考学习
JavaScript
132
star
3

elemeimitate

基于安卓的网上订餐系统项目,仿饿了么APP,通过Volley框架进行网络数据交互,前端使用Android的Fragment,界面简洁,是一款基于C/S架构的APP系统,APP服务器采用Java开发
Java
118
star
4

springbootexamples

SpringBoot系列教程:本专栏基于Springboot2.0,配套自己写的代码例子,内容设计基本的配置用法,web,数据库,Redis,也涉及到企业级开发的消息队列,dubbo,搜索引擎等方面,并有源码的简单分析,适合作为入门教程
Java
90
star
5

chitchat1.0

基于C++Qt4的白鸽局域网聊天器。可以实现群聊,互发信息 可以根据用户需要设置字体的颜色,加粗,倾斜,加下划线 发送图片 向好友发送图片等等功能
C++
27
star
6

myblog

项目:一款Github上开源的博客系统项目 目的:对学到的框架、开源组件、前端技术进行应用学习。同时开发完成后写技术博客,开源到Github上
JavaScript
21
star
7

sso

单点登录系统
Java
16
star
8

lexer1.1.0

Java编写的C语言词法分析器,Java编写的C语言词法分析器 120号为关键字,用下标表示,i+1就是其机器码; 2140号为操作符,用下标表示,i+21就是其机器码; 41~60号为分界符, 用下标表示,i+41就是其机器码; 用户自定义的标识符,其机器码为51; 常数的机器码为52; 不可以识别的标识符,其机器码为0 选择打开按钮,选择文件所在的路径,单击打开,分析器会获取文件的内容,并将其复制到文本域里,本词法分析器就可以对文本域里的内容进行剪切复制黏贴和清除等编辑操作
Java
12
star
9

newsapp

基于Android的新闻信息系统
Java
11
star
10

ceeprescoms

MFC做界面的高考预录数据信息管理系统(C++)
C++
8
star
11

oracle_optimize_sql

Oracle SQL调优相关脚本
PLSQL
3
star
12

springCloudExamples

Java
1
star