# pmms-dev **Repository Path**: xmnzp/pmms-dev ## Basic Information - **Project Name**: pmms-dev - **Description**: 后台管理系统后台服务 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-14 - **Last Updated**: 2024-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 后台管理系统 [接口管理效果演示](http://114.55.164.189:8001/pm/doc.html) ![](src/main/resources/doc/restful接口.jpg) ##### 一 .集成了mybatisPlus 1. 避免繁琐的mapper.xml 文件和一些dao层 ,可以调用自带的api进行数据层数据交互操作 ##### 二 . 集成了热部署的依赖 1. 通过引用依赖 ```` ```xml org.springframework.boot spring-boot-devtools ``` 2. 可以实现热部署,在不修改配置文件的时候,可以通过ctrl +F9完成代码重新编译,减少项目重启浪费的时间 ##### 三 .集成了SwaggerUI 实现对restFul 接口清晰的管理 1. 导入相关依赖 ```xml     io.springfox     springfox-swagger2     2.7.0     io.springfox     springfox-swagger-ui     2.7.0 ``` 2. 详细内容参考 https://blog.csdn.net/qq_41665356/article/details/89178145 3. 需要注意的是,不同的UI风格依赖,访问的路径也不同 默认是swagger-ui.html 4. 接口路径为 http://adingxiong.com/pm/docs.html ##### 四. 集成redis,实现接口Token权限验证,进行接口安全管理 详细内容参见 https://blog.csdn.net/FindHuni/article/details/94451136 ##### 五. 项目打包运行 1. 需要在plugin下面添加maven官方的依赖 2. 通过LifeCycle 下面找到package或者是install进行打包 ###### 运行 停止 查看 等相关 ```cmd # 运行jar包 jar -jar xxxx.jar # 后台运行jar nohup java -jar xxx.jar & # 后台运行 并制定地方生成日志文件 nohup java -jar xxxx.jar >temp.log & # 查看端口 或者pid ps aux | grep xxx.jar # 查看pid 通过端口 ps -ef | grep 8001 # 关闭进程 kill -9 pid ``` ##### 六. springboot整合shiro进行权限的验证 `shiro`是目前主流的`java`安全框架,主要用来更便捷的认证,授权,加密,会话管理。 验证的过程是: 1. 创建`SecurityManager`安全管理器; 2. `Subject`主体带授权信息执行授权,请求到`SecurityManager` 3. `SecurityManager`安全管理器调用`Authorizer`授权 4. `Authorizer`结合主体一步步传过来的授权信息与`Realm`中的数据比对. `subject`(用户)调用`SecurityManager`进行权限验证,然后`SecurityManager根据Realm的规则仅限用户的身份和权限的比对. ` ##### `Shiro`架构 `shiro `的三个主要组件 + `Subject` + `SecurityManger` + `Realms` ##### 七 . 整合了 AutoGenerator 代码生成器 ,自动生成 entity dao controller mapper ##### 八 .整合了JWT实现Token认证 ###### 什么是JWT JsonwebToken 是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。 ###### 工作原理 + 用户使用用户名密码请求服务器 + 服务器进行验证用户信息 + 服务器通过验证发送给用户一个token + 客户端存储token,并在每次请求时附加这个token值 + 服务器验证token,并返回数据 这个token必须要在每次请求时发送给服务器,它应该保存在请求头中,另外,服务器要支持CORS(跨来源资源共享)策略,一般我们在服务端这么做就可以了 Access-Control-Allow-Origin:* ##### 九 .整合邮箱功能 进行邮箱验证 邮箱的application配置 ```yml # 邮箱的基本验证 mail: host: smtp.qq.com username: xiongchao.panda@qq.com #imap 授权吗 password: ******* port: 465 default-encoding: UTF-8 properties: {"mail.smtp.auth":true,"mail.smtp.ssl.enable":true,"mail.smtp.starttls.required":true} ``` ##### 十. 整合七牛云,实现静态资源有七牛云管理 ##### 十一 .整合Redis Redis的使用场景 + 数据缓存 + 排行榜 + 计时器 + 分布式会话 + 分布式锁 + 社交网络 + 最新列表 + 消息服务器 ##### 十二. 整合消息服务器RabbitMQ + 基本消息模型:生产者–>队列–>消费者 + work消息模型:生产者–>队列–>多个消费者共同消费 + 订阅模型-Fanout:广播模式,将消息交给所有绑定到交换机的队列,每个消费者都会收到同一条消息 + 订阅模型-Direct:定向,把消息交给符合指定 rotingKey 的队列 + 订阅模型-Topic 主题模式:通配符,把消息交给符合routing pattern(路由模式) 的队列 ##### 十三. 整合 liquibase LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其有点主要有以下: + 支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Server, DB2等; + 支持多开发者的协作维护; + 日志文件支持多种格式,如XML, YAML, JSON, SQL等; + 支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等。 #### 更新记录 更新时间 | 日志记录 ---|--- 2020-05-08 | 整合liquibasebase,对数据库进行日志式管理 2020-05-09 | 添加CommentGenerator代码注释自动成功累,在生成EntityBean的同事自动生成SwaggerUI的项目注解