# portal
**Repository Path**: liuwenya/portal
## Basic Information
- **Project Name**: portal
- **Description**: 基于spring boot的快速开发框架
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 13
- **Created**: 2021-10-11
- **Last Updated**: 2024-06-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于spring boot的快速开发框架
`Talk is cheap. Show you my code.`
## 链接
[Github](https://github.com/xuelingkang/portal)
[码云](https://gitee.com/xuelingkang/portal)
## 目录结构
```
portal
├── boot ········································ 整合常用组件
│ ├── starter ································· 自定义 spring boot starter 聚合工程
│ │ ├── sftp ································ sftp 聚合工程
│ │ │ ├── sftp-client ····················· sftp client 实现
│ │ │ └── sftp-client-spring-boot-starter · sftp client spring boot starter
│ │ └── swagger2 ···························· swagger2 聚合工程
│ │ ├── swagger2-annotations ············ 扩展注解
│ │ ├── swagger2-extension ·············· swagger2 扩展
│ │ └── swagger2-spring-boot-starter ···· swagger2 spring boot starter
│ ├── core ···································· 框架的公共接口和对象
│ ├── persistent ······························ 持久层接口
│ ├── mybatis ································· 基于 mybatis plus 实现持久层
│ ├── elasticsearch ··························· 基于 elasticsearch 实现持久层
│ ├── redis ··································· redis 配置,分布式锁,pipeline工具,限流器
│ ├── cache ··································· redis 缓存配置,扩展缓存管理器,定义常用KeyGenerator
│ ├── webmvc ·································· web 项目通用配置,序列化、参数验证、异常拦截等
│ ├── feign ··································· feign 通用配置,支持对象传参和form-data
│ └── enhance ································· 编译期增强,自动管理缓存,必须和mybatis、cache同时使用
├── develop ····································· 开发环境,基于docker-compose
│ ├── mysql ··································· mysql 配置、初始数据
│ ├── elasticsearch ··························· elasticsearch 配置和分词器
│ └── kibana ·································· kibana 配置
└── webapps ····································· webapp 聚合工程
├── common ·································· 公共对象、常量
├── system ·································· 系统模块,用户、角色、应用等
├── content ································· 内容模块
├── file ···································· 文件模块
├── notice ·································· 通知模块
├── queue ··································· 消息队列模块
├── task ···································· 任务调度模块
├── remote ·································· 远程接口
├── gateway ································· 网关
├── admin ··································· 后台
├── master ·································· 前台
└── sso ····································· 单点登录
├── sso-common ·························· 公共对象、常量
├── sso-server ·························· 单点登录server
└── sso-client ·························· 单点登录client,通用接口和feign接口
```
## 使用方式
### 导入依赖管理
```xml
com.xzixi.framework
boot
2.2.2
pom
import
```
### 导入需要的包
```xml
com.xzixi.framework
sftp-client-spring-boot-starter
```
```xml
com.xzixi.framework
swagger2-spring-boot-starter
```
```xml
com.xzixi.framework
mybatis
```
```xml
com.xzixi.framework
elasticsearch
```
```xml
com.xzixi.framework
redis
```
```xml
com.xzixi.framework
cache
```
```xml
com.xzixi.framework
webmvc
```
```xml
com.xzixi.framework
feign
```
```xml
com.xzixi.framework
enhance
provided
```
## 更新日志
current
- 替换httpclient,解决java.net.HttpURLConnection不支持PATCH请求的问题
- 增加redis限流器
2020.12.15 v2.2.2
- 增加转换@SpringQueryMap参数的工具
- 全局异常拦截的顺序调整到最低
- 修复调用远程接口异常拦截
- 增加RedisScanService
- 全局异常拦截增加IllegalArgumentException
- 优化Md5SignServiceImpl
- 增加feign通用配置模块
2020.11.18 v2.2.1
- 优化enhance模块生成的listByIds方法
- enhance模块追加方法和属性时增加检查,防止重复定义
2020.11.17 v2.2.0
- 新增RedisPipelineService
- 优化CacheEnhanceProcessor生成的listByIds方法
- 简化@CacheEnhance注解,去掉baseCacheName和casualCacheName
- 将@EnableXXX注解替换为autoconfigure
- 修复自定义Annotation Processor导致编译报错的问题
2020.11.08 v2.1.2
- 优化依赖管理
2020.11.08 v2.1.1
- 修正maven依赖bug
- 全局异常拦截修正
- 将mybatis、elasticsearch、redis、cache从webmvc模块中拆分出来
- redis实现可重入分布式锁
2020.11.02 v2.1.0
- 代码生成器增加默认模板配置
- 代码生成器跨项目生成代码
- 公共全局异常拦截
- swagger2启动器优化
- 增加RemoteException,调用远程接口异常
- 增加签名工具
2020.10.12 v2.0.0
- 修改maven坐标和包名
2020.10.11 v1.0.1
- 修正发布配置
2020.10.10 v1.0.0
- 发布第一个版本
- 编译期增强模块
- sftp和swagger2扩展和springboot启动器
- 常用web组件整合,可以通过@EnableXXX注解快速配置
## 启动webapp
执行以下操作的前提是,***Linux***操作系统,已经安装了***docker***和***docker-compose***,且当前用户有***docker权限***
1. ***重要***,`enhance`模块***不要***开启idea的***Enable annotation processing***选项
2. 在develop目录下执行命令`docker-compose up -d`
3. webapps下的`content`、`file`、`notice`、`queue`、`system`、`task`项目设置VM参数:`-javaagent:/path/to/aspectjweaver/aspectjweaver-1.9.6.jar`
4. 使用maven package命令打包`boot`模块,`mvn clean package -Dmaven.test.skip=true`
5. 启动项目