SpringBoot(一):项目概述
文章目录
- zero-admin
- 项目特点
- 项目开发环境
- 项目技术栈
- 运行项目
- 项目开发约束
- 代码规范
- 模块规范
- 数据库规范
- 业务规范
- 补充说明
- 项目效果图
zero-admin
zero-admin管理系统是作者在github上面的一个开源项目,这个开源项目使用了如今市场上Web开发的各种常用技术,包括但不限于SpringBoot,MyBatisPlus,Jwt,Swagger等等,作者会通过SpringBoot的系列博客的方式,将项目中使用的技术一一展示出来,供同学们学习。
该项目作者已经托管至github开源平台,有兴趣的同学可以前往github平台浏览,也欢迎每一个同学给该项目一个star
。
项目演示地址:http://zeroadmin.herenpeng.com (用户名/密码:user/111111)
github下载地址:https://github.com/herenpeng/zero-admin.git
gitee地址:https://gitee.com/herenpeng/zero-admin.git
项目特点
- 项目基于前后端分离开发,前后端使用JSON格式的数据进行通信。
- 基于用户-角色-权限进行系统权限管理,可以自由进行用户,角色,权限的添加,修改,删除。
- 系统权限管理粒度精细至接口,每一个后台接口都可以通过系统进行权限管理。
- 系统级别启动触发事件,系统资源接口自动扫描,无需手动添加,系统事件可自由配置开关。
- 系统静态资源文件管理功能,系统静态资源文件自由管理。
- 基于注解的AOP日志管理功能,记录每一个接口请求的详细信息。
- 逻辑删除数据,及数据回收站功能。
项目开发环境
- JDK 1.8
- Maven 3.6.3
- MySQL 5.7.30
- Redis(Windows) 3.2.100
项目技术栈
- SpringBoot
- MyBatisPlus
- JWT
- WebSocket
- Swagger
- FreeMarker
- SpringDataRedis
- easyPoi
- oshi
运行项目
1、从github地址上将项目下载下来。
2、将项目设置为Maven项目,并使用Maven下载相关依赖。
3、修改application-dev.yml里面的MySQL数据库和Redis数据库的连接信息。
4、启动MySQL数据库,并导入sql脚本文件。
5、启动Redis数据库。
6、运行MyApplication的main()方法,启动项目。
【备注】如果需要使用项目的邮件发送功能,需要修改application.yml文件中的spring.mail.username和spring.mail.password配置。
项目开发约束
代码规范
本项目代码开发规范遵循《阿里巴巴Java开发手册》,在进行开发前,请下载阿里巴巴Java代码开发约束插件,保证项目代码质量。
链接:《阿里巴巴Java开发手册——嵩山版》
模块规范
本项目功能使用分模块开发,如果需要在本项目的基础上进行开发,请按照以下的三个步骤进行:
- 请在zero-admin项目下新建模块,并以zero-admin为父项目,需要的第三方依赖,请在zero-admin父模块的pom.xml文件中添加。
- 在新建模块的pom.xml文件中添加zero-sys模块的依赖。
- 在zero-web模块的pom.xml文件中添加新建模块的依赖。
数据库规范
所有数据库表的设计,除数据库的业务字段外,都必须包含以下6个通用字段。
-- 这是通用的表数据结构字段
CREATE TABLE `base_table` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',-- 在这里添加表数据业务功能字段`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据库数据插入时间',`create_user_id` int(11) NOT NULL DEFAULT '0' COMMENT '数据库数据插入用户主键',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '数据库数据更新时间',`update_user_id` int(11) NOT NULL DEFAULT '0' COMMENT '数据库数据更新用户主键',`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标识,0为正常,1为逻辑删除,默认为0',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='数据库基本表';
业务规范
- 项目中的所有实体类统一继承
com.zero.common.base.entity.BaseEntity
类,BaseEntity
中包含了数据库规范中包含的六个通用字段。 - 所有
Mapper
接口统一继承com.baomidou.mybatisplus.core.mapper.BaseMapper
接口。 - 所有
Service
接口统一继承com.zero.common.base.service.BaseService
接口,所有ServiceImpl
类继承com.zero.common.base.service.impl.BaseServiceImpl
类。 - 所有
Controller
类统一继承com.zero.common.base.controller.BaseController
类。
补充说明
1、该项目为一个前后端分离项目,启动该项目只是一个纯后端系统,需要结合前端项目进行使用,具体说明可以参考前端项目说明。
前端项目github下载地址:https://github.com/herenpeng/zero-admin-vue.git
2、该项目的SpringBoot版本为2.3.8.RELEASE,请不要降低SpringBoot的依赖版本,否则可能会因为SpringAop的执行顺序变化问题,导致系统日志功能发生异常。
具体关于SpringAop执行顺序问题,可以参考作者博客:不同版本的SpringAop执行顺序变化
3、系统内部集成了Swagger接口文档,直接通过项目系统【项目文档】菜单或者/swagger-ui/index.html路径,可以直接访问接口说明文档
项目效果图
系统首页
用户管理
新增用户
账号管理
菜单管理
系统监控
登入日志
日志管理
密码重置
数据回收
代码生成
系统文档
SpringBoot(一):项目概述相关推荐
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
- 1、点评搜索服务推荐系统项目概述
ElasticSearch7+Spark 构建搜索服务&推荐系统 文章目录 ElasticSearch7+Spark 构建搜索服务&推荐系统 项目概述 项目设计 业务需求 技术分解&a ...
- (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口
文章目录 (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口 1.项目概述 1.1 项目介绍 1.2 硅谷课程流程图 1.3 硅谷课堂功能架构 1.4 硅谷课堂技术架构 1. ...
- vue和SpringBoot搭建项目(原创)
1.element官网 https://element.eleme.cn/#/zh-CN/component/installation 2.element介绍 Element:网站快速成型工具.是饿了 ...
- Linux下 SpringBoot jar项目后台运行、查看、停用
运行java jar: nohup java -jar **-0.0.1-SNAPSHOT.jar & 查看进程: 采用top或者ps aux命令.一般 如果后台是springboot,jar ...
- 最简单最详细的SpringBoot入门项目——HelloWorld
最详细的SpringBoot入门项目--HelloWorld 关于SpringBoot的介绍以及优点这里就不说了,想了解的可以直接点击这里 Spring Boot百度百科 接下来我们直奔主题,开始用S ...
- Github 上 10 个值得学习的 Springboot 开源项目
Spring Boot 几乎继承了所有 Spring 框架的优点,同时还可以让项目的配置更简化.编码更简化.部署更方便.近两年受到很多开发者的追捧,也是火热的不行! 下面给大家整理了 10 个 Git ...
- spark项目实战:电商分析平台之项目概述
spark项目实战:电商分析平台之项目概述 目录 项目概述 程序架构分析 需求解析 初始代码和完成代码存放在github上面 1. 项目概述 在访问电商网站时,我们的一些访问行为会产生相应的埋点日志( ...
- python开源考试_Github 上 10 个值得学习的 Springboot 开源项目
spring Boot 几乎继承了所有 Spring 框架的优点,同时还可以让项目的配置更简化.编码更简化.部署更方便.近两年受到很多开发者的追捧,也是火热的不行! 下面给大家整理了 10 个 Git ...
- SpringBoot部署项目到Docker仓库
SpringBoot部署项目到Docker仓库 1.开启远程控制端口 Centos7开启方式: vim /lib/systemd/system/docker.service 找到ExecStart行 ...
最新文章
- 重新更新了,账号都丢了,重新找回的
- 科大星云诗社动态20210428
- 将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程
- Spring IoC 的实现机制
- Android-Universal-Image-Loader学习笔记(一)
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink
- nuget 下载nupkg 以及依赖包
- VSCode 离线安装中文语言包
- FIT2CLOUD混合云管理平台实现可扩展架构升级
- Go语言: go-redis客户端通过MSet方法一次性批量写入多个key的值
- win10 c盘压缩卷只能压出一半?或只能压缩出一点空间的完美解决方案
- 华为荣耀5a是android几,华为荣耀5a各版本区别 华为荣耀5a各版本 对比【图文】
- 别被别人抢走了你的时间!
- fib matlab,基于MATLAB的FIB制备三维原子探针样品过程的模拟方法与流程
- 数据库(mysql)基本概念
- 关于intrins.h头文件的介绍,做流水灯时候更方便
- Kotlin版 极简 干货集中营 APP
- 2006年6月26日之足球不眠夜---意大利+黄健翔VS澳大利亚
- HTML完成我的校园网页实现 HTML+CSS
- 推石磨机器人_您见过机器人豆腐西施吗?七旬老人发明出来了,能推石磨添料揽客...
热门文章
- oracle表给用户授权
- Java获取某年某周的第一天
- sublimelinter php 语法不起作用,sublime安装插件sublimeLinter不起作用解决办法
- 创业公司如何应对大公司的冲击
- 单选/复选框中点击文字能选择该选项
- 解决tomcat 静态页面(html)中文乱码终极篇
- 在Outlook2007中设置QQ邮箱为IMAP/SMTP服务器
- 基于粒子群优化的MPPT控制
- 从顶会论文看2022年推荐系统序列建模的趋势
- 对话西门子Mendix:低代码与亚马逊云科技Serverless的底层融合,助力企业提效降本...