# 后台管理系统-SpringBoot
**Repository Path**: myeciplise/springboot0601
## Basic Information
- **Project Name**: 后台管理系统-SpringBoot
- **Description**: SpringBoot+Mybatis+redis+shiro+security,mysql数据库,bootstrap(H+)前端组件,jquery.validate.
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 27
- **Created**: 2020-03-24
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
该项目后期考虑做成分布式服务,欢迎大家一起学习,共勉。
项目说明:该项目主要做了后台管理系统。对接了聚合数据的天气预报,万年历,星座运势,周公解梦,笑话大全,股票数据等多个接口。采用Aspect切面技术保存系统操作日志。集成FTP实现文件上传下载。Swagger文档提供api管理。
前端技术:bootstarp+jquery+framaker模板
后端技术:springboot+Mybatis+(redis+Cache)缓存+shiro权限控制
数据库:mysql
功能结构:
>系统管理
>>用户管理
>>角色管理
>>菜单管理
>>部门管理
>基础数据管理
>>数据字典管理
>>定时器管理
>系统监控
>>服务监控
>>系统日志
>>API监控
>文件管理
>>文件列表
部署说明:
一. 环境要求
mysql 5.7,JDK8,Maven,FTP,redis
二. 操作步骤
1.下载项目到本地后,查看application.properties(spring.profiles.active=test,其中test对应的表示application-test.properties映射文件),application-dev.properties(本地开发库),application-test.properties(线上测试库)文件,修改对应配置。
2.数据库初始数据见目录doc/sql/product.sql
3.运行StartApplication启动类。
4.注:若需要redis,则需本地运行redis,对应修改application.properties文件中的redis配置,另外将spring.redis.isopen=false设置为true.
5.访问地址为 http://localhost:9009/
系统管理员角色:sys_admin(123456)
超级管理员角色:admin(123456)
普通用户自己登录页注册即可
FTP服务器部署:
参考前辈经验:https://www.cnblogs.com/popfisher/p/7992036.html
三. 测试地址
http://47.112.26.69:9009/
sys_admin(123456)
**演示效果图:**
1.首页

2.系统管理---用户管理

3.系统管理---角色管理

4.系统管理---部门管理

5.系统管理---部门管理---分配用户

6.系统管理---菜单管理

7.系统管理---菜单管理---编辑菜单

8.基础数据管理---数据字典管理

9.基础数据管理---定时任务管理

10.系统监控---服务监控

11.系统监控---系统日志

12.系统监控---API管理

13.文件管理---文件列表

14.文件管理---文件上传

部署文档
# 部署
1. 停止应用
# 命令,查询pid
ps aux |grep 9009
# 找到对应的pid,然后kill掉
kill -9 xxx
# 例子
[root@cqydtest web]# ps aux |grep 9009
root 22277 2.9 14.5 5170228 1193768 pts/1 Sl 15:27 2:02 java -jar springboot0601-0.0.1-SNAPSHOT.jar
root 22537 0.0 0.0 103268 856 pts/1 S+ 16:36 0:00 grep 9091
[root@cqydtest web]# kill -9 22277
2. 启动应用
# 命令
nohup java -jar springboot0601-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod --server.port=9009 &
###总结
1.有访问其他数据接口,可以拿到想要的数据写成自己网页:首页--今日头条
2.有图片上传:头像 == 需要配置ftp : 可配置
保存图片位置:E:\avatar 头像目前在里面 可在application.properties中配置
上传文件直接保存到文件表,需要返回id和url
问题:上传中文名乱码
3.菜单说明:
接口管理-登录链接:就和收藏地址一个意思
接口管理-天气信息: 网上接口
基础数据管理-数据字典管理:类型代码的翻译字典bsc_dic_code_type、bsc_dic_code_item 的type_id
4.代码解读:
a.AppleBorrowBookVo这个vo类为了联合查询的时候都能包含的对象
b.分页查询:如果用到用户信息,或是重要信息,第一先判断是否有用户登录了,
c.BaseEntity:里面有分页属性
d.druid:连接池==sql监控,处理的数据量规模较大。
可以进行数据的实时查询展示。
它的查询模式是交互式的,这也说明其查询并发能力有限。
http://127.0.0.1:9009/druid/index.html
e.定时任务:在表里添加对应的要执行的类文件
f.访问互联网接口:写好的接口根据返回的值
g.完整流程:
控制类:和页面交互,参数用@parms 流程:页面访问的都是后台路劲,然后后台返回一个视图路劲给前台
服务类:业务逻辑
map类和map.xml:对应的sql,要求:写好返回的列名,参数是对象必须写如果是变量就无所谓; 返回的对象model里面属性都要包含列名如果没有就写vo类
selectByExample:根据条件查询列表
map中写resultMap类型jdbcType :longtext ==> LONGVARBINARY ; varchar ==> VARCHAR ; int ==> INTEGER ;
datetime ==> TIMESTAMP ; longtext ==> LONGVARBINARY ; longtext ==> LONGVARBINARY ;
explain是mysql的关键字不能为列名
实体类:对应表中属性值,