# springboot **Repository Path**: jerry0312521/springboot ## Basic Information - **Project Name**: springboot - **Description**: springboot多模块项目。集成springboot,jpa,mybatis(pagehelper,mybatis-generator),redis,shiro(shiro分支),druid,RabbitMQ,log4j2,swagger2,email,rsa加密,基于注解接口幂等设计,基于注解接口限流,全局异常处理,分布式全局id雪花算法,二维码,验证码,文件上传,阿里支付,微信支付,快递鸟快递查询等。一些常用util。一些常用类的api使用demo - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2020-04-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # springboot多模块项目 **邮箱:xiangwbs@163.com** ### 介绍 本项目集成springboot,jpa,mybatis(pagehelper,mybatis-generator(修改过源码)),redis,shiro(shiro分支),druid,RabbitMQ,log4j2,swagger2,email,用户角色权限功能,rsa加密,基于注解接口幂等设计,基于注解接口限流,全局异常处理,乐观锁异常重试机制,基于redis分布式锁,xxl-job,分布式全局id雪花算法,二维码,验证码,防盗链,文件上传,阿里支付,微信支付,快递鸟快递查询,阿里云log,钉钉机器人等。一些常用util。一些常用类的api使用demo! 本项目适合3年以内工作经验的同学学习和借鉴,有不足之处,请大家指出,互相学习! ### 软件架构 * 主体结构 >boot(boot-config boot-service boot-web) * 外部项目 >xxl-job
>mybatis-generator-core ### 启动环境 1. jdk1.8 2. maven 3. redis 4. rabbitmq 5. lombok插件 6. xxl-job 7. mybatis-generator-core ### 启动说明 * xxl-job
1.数据库执行ddl:xxl-job/doc/db/tables_xxl_job.sql
2.修改数据库配置:xxl-job-admin/resources/application.properties
3.构建xxl-job
4.启动XxlJobAdminApplication
5.访问 http://127.0.0.1:7777/xxl-job-admin (账号:admin 密码:123456)
6.执行器管理-新增执行器-(AppName:boot,名称:boot执行器,机器地址:127.0.0.1:8001)
7.任务管理-新增-(执行器:boot执行器,路由策略:轮训,JobHandler:bootWebHandler) * 构建mybatis-generator-core * rabbitmq
1.安装rabbitmq并启动
2.修改rabbitmq配置:boot-web/resources/application-dev.yml|application-prod.yml * redis
1.安装redis并启动
2.修改redis配置:boot-web/resources/application-dev.yml|application-prod.yml * boot-web
1.数据库执行ddl:boot-service/resources/data/boot_module_ddl.sql
2.修改数据库配置:boot-service/resources/druid.properties
3.启动BootApplication ### 项目说明 ##### boot-config(自动配置) * com.xwbing.config.aspect.ExceptionLogAdvice service异常日志记录 * com.xwbing.config.aspect.FlowLimiterAspect 接口限流 * com.xwbing.config.aspect.IdempotentAspect 接口幂等 * com.xwbing.config.aspect.LockAspect -基于redis分布式锁 * com.xwbing.config.aspect.OptimisticLockRetryAspect -乐观锁异常重试机制 * com.xwbing.config.redis -redis自动配置 * com.xwbing.config.aliyun -aliYunLog和dingTalk自动配置 * com.xwbing.config.xxljob -xxljob自动配置 ##### boot-service * com.xwbing.service.sys -用户角色权限服务层 * com.xwbing.datasource-(JpaDataSourceConfig,MybatisDataSourceConfig) * com.xwbing.demo -常用api的使用 * com.xwbing.rabiit -rabbitmq使用 * com.xwbing.util.captcha -验证码 * com.xwbing.util.DateUtil2 -java8日期工具类 * com.xwbing.util.DigestsUtil -MD5/SHA-1 * com.xwbing.util.EmailUtil -邮箱工具类 * com.xwbing.util.EncodeUtil -编码解码工具类 * com.xwbing.util.ExcelUtil -excel工具类 * com.xwbing.util.HttpUtil -httpcliet工具类 * com.xwbing.util.KdniaoUtil -快递鸟快递查询 * com.xwbing.util.PassWordUtil -密码工具类 * com.xwbing.util.QRCodeUtil -二维码工具类 * com.xwbing.util.OrderNoUtil -订单号生成工具类 * com.xwbing.util.RSAUtil -rsa非对称加密工具类 * com.xwbing.util.TraceIdGenerateWorker -分布式全局id雪花算法 * com.xwbing.util.ZipUtil.java -压缩工具类 * resources/data/boot_module_ddl.sql -数据库脚本 * resources/data/bootModule.pdm -表结构 * resources/generatorConfig.xml -mybatis自动生成插件配置 ##### boot-web * com.xwbing.controller.sys -用户角色权限控制层 * com.xwbing.configuration -核心配置包 * com.xwbing.handler.FileFilter -防盗链 * com.xwbing.handler.GlobalExceptionHandler -全局异常处理 * com.xwbing.handler.LoginInterceptor -登录拦截器 * com.xwbing.handler.UrlPermissionsInterceptor -权限拦截器 * com.xwbing.handler.WebLogAspect -基于注解日志切面 * com.xwbing.handler.XxlJobHandler -xxljob定时任务示例 * log4j2.xml -log4j2配置 ### 接口说明 boot-web/config.properties 里面可以开启登录拦截器和权限拦截器.
如果开启权限拦截器,得在权限接口里对相应用户添加权限(url形式),否则一些接口无法访问 * /common/getSign 获取签名,用于所有@Idempotent接口,防止表单重复提交 * /user/login 登录接口,登录时会返回token,如果开启登录拦截器,所有接口必须有token请求头才可以访问 * /doc swagger接口文档映射地址