# springboot-admin **Repository Path**: dasiwot/springboot-admin ## Basic Information - **Project Name**: springboot-admin - **Description**: 一套干净的企业数据管理系统/运营平台模版,完成了菜单管理、用户管理、角色管理和权限管理四大基础模块,技术栈使用的是springboot,mybatis,mybatis example,shiro,mysql - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 17 - **Created**: 2021-04-02 - **Last Updated**: 2022-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目介绍 此项目为企业数据管理系统的后端部分,前端部分请参考[vue-admin](https://gitee.com/lazymk-cg-templates/vue-admin),项目实现了菜单管理、用户管理、角色管理和权限管理四个基础模块,前端菜单管理结合动态路由可自由添加菜单。结合Shiro权限管理实现了菜单和按钮的权限控制。如有问题可加入交流群:877957236 # 使用步骤 1. 克隆项目 2. 执行项目下sql/init.sql文件 3. 修改src/main/resources/application.yml的数据库信息 4. 启动项目 超级管理员账号:admin,密码:123123 如需前端代码,请参考[vue-admin](https://gitee.com/lazymk-cg-templates/vue-admin)的使用步骤说明 # 项目预览 ![在这里插入图片描述](doc/images/menu1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/menu2.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/user1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/user2.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/role1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/role2.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/role3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](doc/images/permission1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI2Mjc4NjE=,size_16,color_FFFFFF,t_70) # 技术栈说明 基于SpringBoot结合以下技术栈研发 - 权限框架:Shiro - 持久层:MyBatis - 视图层:无 - 日志:Logback - 单元测试:未集成 - 插件:Swagger、Lombok --- # 包名说明 - api: 存放API - service:存放业务类 - dao:存放持久层类 - core:存放核心类,如常量类,工具类,异常类,全局实体类等 - interceptor:存放拦截器 - filter:存放过滤器 - config: 存放配置类,如Swagger配置类 - shiro:存放shiro相关配置和实体 --- # 配置说明 所有配置文件全部位于src/main/resources目录下 - application.yml:项目全局配置文件 - logback.xml:日志配置 --- # 持久层说明 #### 实体类、Example类、Mapper类的生成 框架中集成了MyBatis Generator,可通过MyBatis Generator来生成Mapper.xml和实体类。 --- # 控制层说明 #### 控制层基类 BaseController: 位于com.admin.api #### 编写控制层 - 所有Controller类都应该继承BaseController,以便于全局异常处理和获取用户信息 - Controller无需手动捕获异常,异常将进行全局捕获(将根据接口类型返回异常JSON对象) --- # 环境分离 不建议使用Maven profile和springboot提供的spring.profiles.active来处理环境分离,这样会暴露生产环境配置信息(如数据库地址,加密密钥等)。生产环境配置应该单独编写并放在打包好的jar包同级目录下。如下: ``` |- 目录 |-- admin.jar |-- application.yml ``` --- # 切换环境 修改application.yml下的project.env即可,取值为production和development,同时这也是logback appender的名称,环境切换后将自动采用对应的appender。如需增加环境配置,只需要添加对应的logback appender即可。 --- # 全局异常处理 通过BaseController的exceptionHandle方法捕获全局异常,当访问一个数据处理接口出错时,将自动返回异常JSON对象。 --- # 日志说明 日志采用springboot推荐的logback框架,对应src/main/resources/logback.xml配置文件。拥有两个Appender,分别是development(日志输出到控制台)和production(日志输出将产生文件并存放至log目录下)。Appender跟随项目环境自动切换。 --- # JSON日期格式处理 当接口返回JSON时,默认日期格式为yyyy-MM-dd HH:mm:ss --- # 关于Swagger #### Swagger地址 http://localhost:8080/doc.html #### Swagger的启用和禁用 在application.yml中修改swagger.enabled即可,true表示启用Swagger,false表示禁用Swagger。在项目启动后可查看Swagger的状态。