# microservice-spring-cloud **Repository Path**: 19940503qidanfeng/microservice-spring-cloud ## Basic Information - **Project Name**: microservice-spring-cloud - **Description**: 项目主要实现企业后端系统管理的基本功能,主要是解决现有系统无法对数据权限做到有效控制。项目后台采用spring cloud搭建,集成mybatis-plus,oauth2.0,redis,rabbitMq等 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2018-06-25 - **Last Updated**: 2021-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # microservice-spring-cloud #### 项目介绍 项目主要实现企业后端系统管理的基本功能,主要是解决现有系统无法对数据权限做到有效控制。使用前后端分离实现,后端:[spring cloud](https://gitee.com/19940503qidanfeng/microservice-spring-cloud) :前端:[vue-element-admin](https://gitee.com/19940503qidanfeng/vue-element-admin),前台框架在[原生的基础](https://github.com/PanJiaChen/vue-element-admin)上做了修改。 后端使用mybatis-plus作为数据持久化工具,集成oauth2.0认证功能,集成redis缓存,集成rabbitMq等;前端主要使用vue+element组件。 #### 功能 系统主要包含的功能有: * 用户管理:管理系统用户信息,用户拥有角色和数据权限,目前用户通过组织分配数据权限。 * 角色管理:系统角色管理,角色通过权重进行过滤,支持用户多角色分配,角色同时赋予菜单权限。 * 菜单管理:系统菜单配置,按钮权限。 * 组织管理:系统用户的组织信息,目前数据权限使用组织信息过滤。 * 职务管理:用户的职务信息,目前没有加入数据权限。 * 代码生成:由表自动生成前后端代码。 * 定时任务:使用quartz实现任务调度。 * 系统日志:记录系统的接口操作日志,在zuul中进行拦截,统一发往rabbitMQ进行记录,日志拦截的url可通过配置文件基于正则表达式配置。 * 动态路由配置:动态配置zuul路由转发。 * 系统接口的认证: 整个系统的各个接口由认证服务器统一认证授权,认证的url可通过配置文件进行统一配置。 * 系统监控:eureka服务发现,druid数据库监控,rabbitMq管理,集成spring-boot-admin监控。 * swaggerApi:各个微服务的接口调用。 #### 模块 * eureka-server: 服务注册中心。 * config-server: 配置服务,为各微服务提供统一配置管理。 * common-server: 公共模块,此模块提供各服务公共类,比如用户,角色等,以及其他工具类,其他模块必须依赖此模块。 * redis-server: 公共redis模块,此模块依赖common-server主要是为了防止某些业务模块不需要redis,而此时只需引入common-server模块即可。 * system-server: 系统管理模块,目前系统功能都在此模块实现,包含用户管理,角色管理,菜单管理,组织管理,职务管理,代码生成,定时任务,系统日志,动态路由配置。 * auth-server: 认证服务模块,集成oauth2.0提供整个微服务的认证信息。 * gateway-server: 网关模块,作为系统路由转发,拦截请求,向rabbitMq异步发送记录日志消息,并由system-server模块记录。 * admin-monitor-server: admin监控服务,集成spring-boot-admin,监控整个微服务运行状态。 #### 项目部署 一. jar包部署 1.修改数据库地址;redis地址;rabbitMq地址; ![数据库文件](./doc/images/1.jpg) 2. 修改config-server的配置文件为自己的仓库地址; ![仓库地址](./doc/images/2.jpg) 3. 运行doc下的sql文件建立数据库; 4. 在idea中构建运行的jar包:需要一次打包所有的,单独打包某个服务会报错。 ![构建jar](./doc/images/3.jpg) 5. 首先运行 eureka-server服务,在启动config-server,然后依次可以是:auth-server、system-server、gateway-server,其中gateway-server最后放在system-server和auth-server之后启动,最后可以启动admin-monitor-server服务; 如果没有出错,则启动成功。 二. docker部署 1. 前4步与jar包部署一致; 2. Dockerfile文件已经放在各个模块下面的目录下,将生成的jar与对应的Dockerfile文件放到同一目录下 3. docker部署相应的命令已经在各自的dockerfile文件内以注释的形式表明。 最后[部署前台](https://gitee.com/19940503qidanfeng/vue-element-admin),前端是基于nodejs部署的,这里不再写部署手册。 在前端需要修改的地方有: a. 这里修改为自己的gateway-server的服务器地址和端口 ![网关地址](./doc/images/4.jpg) #### 项目页面 ![用户管理](./doc/images/5.jpg) ![角色管理](./doc/images/6.jpg) ![菜单管理](./doc/images/7.jpg)![组织管理](./doc/images/8.jpg) ![职务管理](./doc/images/9.jpg) ![日志管理](./doc/images/10.jpg) ![系统监控](./doc/images/11.jpg) ![定时任务](./doc/images/12.jpg)