Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍
在线演示
演示地址:http://139.196.87.48:9002/kitty
用户名:admin 密码:admin
温馨提示: 有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,右键头像菜单, 选择 -> 备份还原 帮忙恢复到系统默认备份数据,方便后来的童鞋查看,谢谢啦。
技术交流
为了方便大家提问和技术交流,整了个QQ群,欢迎童鞋们加入。
QQ技术交流群:
项目介绍
Kitty是基于Spring Boot、Spring Cloud、Vue、Element实现的Java快速开发平台。
目标是搭建出一套简洁易用的快速解决方案,可以帮助用户有效降低项目开发难度和成本。
个人博客提供本项目开发过程同步系列教程文章,手把手的教你如何开发同类系统。
分支说明
master: 主推版本分支,支持分布式,服务治理(Spring Cloud)
dev: 开发分支,适时合并到master分支,支持分布式,服务治理(Spring Cloud)
shiro: 基于Spring Boot,不包含 Spring Cloud,部署环境稍微简单一点
功能计划
- ✔ 系统登录:系统用户登录,系统登录认证(token方式)
- ✔ 用户管理:新建用户,修改用户,删除用户,查询用户
- ✔ 机构管理:新建机构,修改机构,删除机构,查询机构
- ✔ 角色管理:新建角色,修改角色,删除角色,查询角色
- ✔ 菜单管理:新建菜单,修改菜单,删除菜单,查询菜单
- ✔ 字典管理:新建字典,修改字典,删除字典,查询字典
- ✔ 系统日志:记录用户操作日志,查看系统执行日志记录
- ✔ 数据监控:定制Druid信息,提供简洁有效的SQL监控
- ✔ 聚合文档:定制在线文档,提供简洁美观的API文档
- ✔ 备份还原:系统备份还原,一键恢复系统初始化数据
- ✔ 主题切换:支持主题切换,自定主题颜色,一键换肤
- ✔ 服务治理:集成Consul注册中心,实现服务注册和发现
- ✔ 服务监控:集成Spring Boot Admin,实现服务监控
- ✔ 服务消费:集成Ribbon、Feign,服务调用和负载均衡
- ✔ 服务网关:集成Spring Cloud Zuul,实现API网关
- ✔ 服务熔断:集成Hystrix、Turbine,实现熔断和监控
- ✔ 链路追踪:集成Sleuth、Zipkin,实现分布式链路追踪
- ✔ 配置中心:集成Config、Bus,实现分布式配置中心
- ✘ 单点登录:利用 OAuth2, 提供统一的单点登录功能
- ✘ 系统登录:集成第三方登录功能(QQ、微信、微博)
- ✘ 代码生成:提供代码生成器,最大化的降低代码开发量
- ...
软件架构
后端架构
开发环境
- IDE : eclipse 4.x
- JDK : JDK1.8.x
- Maven : Maven 3.5.x
- MySQL: MySQL 5.7.x
技术选型
- 核心框架:Spring Boot 2.x
- 服务治理:Spring Cloud Finchley
- 安全框架:Apache Shiro 1.4.x
- 视图框架:Spring MVC 5.x
- 持久层框架:MyBatis 3.x
- 数据库连接池:Druid 1.x
- 日志管理:SLF4J、Log4j
项目结构
kitty-common: 公共代码模块,主要放置一些工具类
kitty-core: 核心代码模块,主要封装公共业务模块
kitty-admin: 后台管理模块,包含用户、角色、菜单管理等
kitty-backup: 系统数据备份备份模块,可选择独立部署
kitty-monitor: 系统监控服务端,监控Spring Boot服务模块
kitty-producer: 服务提供者示例,方便在此基础上搭建模块
kitty-consumer: 服务消费者示例,方便在此基础上搭建模块
kitty-hystrix: 服务熔断监控模块,收集汇总熔断统计信息
kitty-zuul: API服务网关模块,统一管理和转发外部调用请求
kitty-config: 配置中心服务端,生成GIT配置文件的访问接口
kitty-consul: 注册中心,安装说明目录,内附安装引导说明
kitty-zipkin: 链路追踪,安装说明目录,内附安装引导说明
config-repo: 配置中心仓库,在GIT上统一存储系统配置文件
kitty-pom: 聚合模块,仅为简化打包,一键执行打包所有模块
前端架构
开发环境
- IDE : VS Code 1.27
- NODE: Node 8.9.x
- NPM : NPM 6.4.x
技术选型
- 前端框架:Vue 2.x
- 页面组件:Element 2.x
- 状态管理:Vuex 2.x
- 后台交互:axios 0.18.x
- 图标使用:Font Awesome 4.x
项目结构
kitty-ui
- assets: 图标、字体、国际化信息等静态信息
- components: 组件库,对常用组件进行封装
- http: 后台交互模块,统一后台接口请求API
- i18n: 国际化模块,使用Vue i18n进行国际化
- mock: Mock模块,模拟接口调用并返回定制数据
- permission: 权限控制模块,处理权限认证逻辑
- router: 路由管理模块,负责页面各种路由配置
- store: 状态管理模块,提供组件间状态共享
- utils: 工具模块,提供一些通用的工具方法
- views: 页面模块,主要放置各种页面视图组件
安装教程
后端安装
下载源码
git clone https://gitee.com/liuge1988/kitty.git
导入工程
使用 Eclipse导入 Maven 项目,在此之前请确认已安装 JDK 和 Maven 工具。
编译代码
找到 kitty-pom 工程的 pom.xml,执行 maven clean install 命令编译一键打包。
一般来说不会有什么问题,如果还是编译不成功,可以按照优先级逐个编译试一试。
导入数据库
新建 kitty 数据库,导入 kitty-admin 工程 doc/kitty.sql 脚本,导入初始化数据库。
修改 kitty-admin 下 application.yml 中的数据库连接和账号密码为自己的数据库配置。
修改 kitty-backup 下 application.yml 中的数据库连接和账号密码为自己的数据库配置。
启动系统
基础必需模块(注册中心:kitty-consul,服务监控:kitty-monitor)
找到 kitty-consul 工程,根据安装说明安装注册中心,完成后执行 consul agent -dev 启动。
找到 kitty-monitor 工程下的 KittyMonitorApplication, 启动项目,开启服务监控。
权限管理模块(权限管理:kitty-admin,备份还原:kitty-backup)
找到 kitty-admin 工程下的 KittyAdminApplication, 启动项目,开启权限管理系统服务。
找到 kitty-backup 工程下的 KittyBackupApplication.java,启动项目,开启备份还原服务。
其他模块根据各自需要选择性启动,模块依赖可以参见我的博客同步教程...
注意事项:
如果需要链路追踪服务,需要安装zipkin,找到 kitty-zipkin 工程,根据安装说明安装zipkin。
如果需要配置中心服务,需要安装rabbitMQ,找到 kitty-config 工程,根据安装说明安装rabbitMQ。
前端安装
下载源码
git clone https://gitee.com/liuge1988/kitty-ui.git
编译代码
进入项目根目录,执行 npm install, 下载和安装项目相关依赖包。
启动系统
执行 npm run dev 命令,启动项目,通过 http://localhost:8090 访问。
项目打包
执行 npm run build 命令,启动打包,完成之后会生成 dist 目录。
Mock 开关
通过修改src/mock/index.js中的openMock变量,可以一键开启或关闭Mock功能。
修改配置
如果想自定义端口(默认是8090),可以修改 config/index.js 下的 port 属性。
后台接口和备份服务器地址配置在 src/utils/global.js,如有修改请做相应变更。
源码下载
后端:https://gitee.com/liuge1988/kitty
前端:https://gitee.com/liuge1988/kitty-ui.git
作者:朝雨忆轻尘
出处:https://www.cnblogs.com/xifengxiaoma/
版权所有,欢迎转载,转载请注明原文作者及出处。
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍的更多相关文章
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十五):Spring Security 版本
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 到目前为止,我们使用的权限认证框架是 Shiro,虽然 Shiro ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十三):配置中心(Config、Bus)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十):服务熔断(Hystrix、Turbine)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 雪崩效应 在微服务架构中,由于服务众多,通常会涉及多个服务层级的调用,而一旦基 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)
技术背景 上一篇教程中,我们利用Consul注册中心,实现了服务的注册和发现功能,这一篇我们来聊聊服务的调用.单体应用中,代码可以直接依赖,在代码中直接调用即可,但在微服务架构是分布式架构,服务都运行 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十八):注册中心(Spring Cloud Consul)
什么是 Consul Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十六):容器部署项目
容器部署项目 这一章我们引入docker,采用docker容器的方式部署我们的项目. 首先需要有一个linux环境,并且安装 java 和 maven 以及 docker 环境,这个教程多如牛毛,不再 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十五):系统服务监控
系统服务监控 新建监控工程 新建Spring Boot项目,取名 kitty-monitor,结构如下. 添加项目依赖 添加 spring boot admin 的相关依赖. pom.xml < ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署
项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十三):系统备份还原
系统备份还原 在很多时候,我们需要系统数据进行备份还原.我们这里就使用MySql的备份还原命令实现系统备份还原的功能. 新建工程 新建一个maven项目,并添加相关依赖,可以用Spring boot脚 ...
随机推荐
- Python 实现WC功能
GitHub仓库:https://github.com/15crmor/PAC 项目要求 基本要求 -c 统计文件字符数 (实现) -w 统计文件词数 (实现) -l 统计文件行数(实现) 扩展功能 ...
- [PHP-Debug] 使用 php -l 调试 PHP 错误遇到的坑
有时候,因为系统代码的增加,造成很多文件的相互关联,又或者某些第三接口(微信等),你必须要在线上调试. 线上环境,我们都是设置 “ini_set('display_errors' , false)” ...
- session token防表单重提
1.表单页面初始化前,先在session存入一个token值,随后把token存放在表单页面隐藏表单域内,开始初始化: 在表单页初始化前,调用ajax请求,在后台生成token,并返回至表单页 fun ...
- zabbix-server启动报错解决
启动zabbix-server有如下报错: 29171:20180714:084911.367 cannot start alert manager service: Cannot bind sock ...
- Spring Boot 应用系列 5 -- Spring Boot 2 整合logback
上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对 ...
- Javascript设计模式理论与实战:观察者模式
观察者模式主要应用于对象之间一对多的依赖关系,当一个对象发生改变时,多个对该对象有依赖的其他对象也会跟着做出相应改变,这就非常适合用观察者模式来实现.使用观察者模式可以根据需要增加或删除对象,解决一对 ...
- python 检索一个目录下所有的txt文件,并把文件改为.log
检索一个目录及子目录下所有的txt文件,并把txt文件后缀改为log: import os f_path = r'C:\Users\PycharmProjects\mystudy\Testfolder ...
- Chrome自定义缩放百分比
我想要设置Chrome页面缩放为120%,但是Chrome只提供110% 125%,根本没有让我舒心的缩放比例. 强迫症发作,谷歌了半天没有一个很好的解决方案. 虽然也有不少第三方扩展可以自定义缩放比 ...
- .NET高级代码审计(第二课) Json.Net反序列化漏洞
0X00 前言 Newtonsoft.Json,这是一个开源的Json.Net库,官方地址:https://www.newtonsoft.com/json ,一个读写Json效率非常高的.Net库,在 ...
- echarts呈现数据表图形
讲一下echarts的用法,列举了两个图表,一个是单柱图,一个是多柱图,至于饼状图,只许更改echarts的类型就好了 一.首先是要两个div,用来存放两个图表 <div class=" ...