# JavaWebBoot **Repository Path**: wanmmhq/JavaWebBoot ## Basic Information - **Project Name**: JavaWebBoot - **Description**: 多模块后台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-11 - **Last Updated**: 2025-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaWebBoot #### 介绍 多模块后台 #### 软件架构 软件架构说明 - springboot - mybatis plus - SQL server 2012 - redis - shiro - logback - druid ### 文档 线上swagger接口: ### 组件模块 | 模块 | 描述 | 功能 | | --- | --- | --- | | boot-base | 基础模块 | 项目所需的基础依赖、公共配置、及工具类等 | | boot-shiro-rbac | 用户鉴权模块 | (shiro+JWT)用户管理,角色/权限分配等 | | boot-log | 日志模块 | logback日志、接口访问日志记录等 | | boot-cache | 缓存模块 | redis集群、redisson分布式锁、springcache注解式缓存 | | boot-activiti | 工作流模块 | activiti整合,及请假Demo | | boot-generator | 代码生成模块 | mybatisPlus的代码生成工具,一键生成基础代码 | | boot-admin | 监控模块 | springboot admin监控台,邮件通知功能 |(未完成) ### 项目模块 | 模块 | 描述 | 功能 | | --- | --- | --- | | boot-user | 主项目 | 整合了所有的组件模块,启动这个模块,就可以测试所有的功能啦 | | --- | --- | --- | | boot-base模块为必须模块,包含启动项目的基础依赖。其他所有组件模块都是一个独立的模块; | boot-user 主项目默认依赖了所有组件模块,可根据自己需要删除、增加模块依赖; | 如果不需要相应功能,在pom中去除相应模块依赖即可。 | 注:权限模块依赖缓存模块,因为需要将jwt-token存放于redis中。 ### 如何开始 1、生产环境下 启动redis-server.exe 2、配置application下数据源 3、配置boot-generator模块下MybatisPlusGenerator中数据源及其他配置文件 4、执行boot-user/resources文件下sql文件 ### 集成功能 **核心功能:** - 用户权限管理: > 框架:springSecurity/shiro +jwt,使用jwt-token作为用户身份Id; > 支持承租人模式;token续期等 > 功能测试:AuthController-> /auth/login 账号密码:admin@gourd 123456 - 动态数据源: > 动态多数据源(支持读写分离,如果只有一个数据库,可将master和slave配置成一样即可); > 数据库连接密码加密; (未完成) - 缓存: > 框架:[springCache](https://www.jianshu.com/p/6db623355e11)+redis+redisson ; > 封装redis、redisson工具类; > 功能测试:TestController-> /test/cache ; TestController-> /test/lock; - 工作流 > 框架:activiti > 请假流程Demo > 功能测试: ActivitiController - 工具类: > 1)地址ip获取工具(AddressUtil); > 2)日期处理工具(DateUtil); > 3)分布式全局唯一订单号生成、分布式全局唯一主键id生成工具(OrderNumberUtil、IdGeneratorUtil); > 4)md5加密工具、AES加解密工具(Md5Util、AesHopeUtil); > 5)汉字拼音生成工具(Pinyin4jUtil); > 6)铭感词脱敏工具(SensitiveInfoUtil); > 7)集合转换复制工具(CollectionUtil); > 8)redis操作工具类、redisson锁工具类(RedisUtil、RedisLockUtil); > 9)RestTemplate远程调用工具了(RestTemplateUtil); > - 其他功能: > 1)统一异常处理,自定义业务异常; > 2)AOP接口防重复提交,唯一条件:指定时间内,用户id+请求url+参数 控制唯一性; > 3)接口访问日志记录,记录请求地址、参数、返回、异常及接口耗时等并持久化到数据库;默认30天过期删除 ; > 4)实体类公共字段填充:is_deleted,version,created_by,created_time,updated_by,updated_time ; > 5)实体类Id自动填充; > 6)p6spy sql日志打印,打印sql耗时、替换参数后的sql(未完成); **辅助功能:** - swagger: > 接口文档、接口调试; > 本地地址:http://localhost:8088/swagger-ui.html# - flyway: > 数据库脚本自动执行,只需要将sql脚本放在 /db目录下,项目启动就会自动执行脚本。 (仅支持MySQL8.0、SQL server2016+) - generator: > mybatisPlus自动生成基础代码 - druid监控: > 本地地址:http://localhost:8088/druid/login.html 账号密码:admin ### 目录树 ``` ─boot-activiti │ │ boot-activiti.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ │ ActivitiConfiguration.java │ │ │ │ │ │ │ └─activiti │ │ │ ├─controller │ │ │ │ ActivitiController.java │ │ │ │ │ │ │ └─service │ │ │ │ WorkFlowService.java │ │ │ │ │ │ │ └─impl │ │ │ WorkFlowServiceImpl.java │ │ │ │ │ └─resources │ │ └─processes │ │ QjFlow.bpmn │ │ │ └─test │ └─java ├─boot-base │ │ boot-base.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ │ BaseConfiguration.java │ │ │ │ │ │ │ └─base │ │ │ ├─annotation │ │ │ │ NoRepeatSubmit.java │ │ │ │ SensitiveInfo.java │ │ │ │ SexShow.java │ │ │ │ │ │ │ ├─config │ │ │ │ AsyncPoolConfig.java │ │ │ │ MyBatisPlusConfig.java │ │ │ │ WebMvcConfig.java │ │ │ │ │ │ │ ├─constant │ │ │ │ CommonConstant.java │ │ │ │ MessageConstant.java │ │ │ │ │ │ │ ├─data │ │ │ │ BaseEntity.java │ │ │ │ BaseFindDTO.java │ │ │ │ BaseResponse.java │ │ │ │ BaseVO.java │ │ │ │ │ │ │ ├─datahandler │ │ │ │ AESEncryptHandler.java │ │ │ │ │ │ │ ├─enums │ │ │ │ FieldShowEnum.java │ │ │ │ FileTypeEnum.java │ │ │ │ SensitiveTypeEnum.java │ │ │ │ SexEnum.java │ │ │ │ SortEnum.java │ │ │ │ │ │ │ ├─exception │ │ │ │ BusinessException.java │ │ │ │ │ │ │ ├─handler │ │ │ │ EntityIdGeneratorHandler.java │ │ │ │ GlobalExceptionHandler.java │ │ │ │ │ │ │ ├─holder │ │ │ │ RequestHolder.java │ │ │ │ SpringContextHolder.java │ │ │ │ │ │ │ ├─property │ │ │ │ RedisClusterProperty.java │ │ │ │ │ │ │ ├─serializer │ │ │ │ SensitiveInfoSerialize.java │ │ │ │ SexSerialize.java │ │ │ │ │ │ │ └─utils │ │ │ AddressUtil.java │ │ │ AesHopeUtil.java │ │ │ Base64ConvertUtil.java │ │ │ BigDecimalUtil.java │ │ │ CollectionUtil.java │ │ │ CryptoDemo.java │ │ │ DateUtil.java │ │ │ EmojiUtil.java │ │ │ IdGeneratorUtil.java │ │ │ IdWorker.java │ │ │ JsonConvertUtil.java │ │ │ MatcherUtil.java │ │ │ Md5Util.java │ │ │ PageUtil.java │ │ │ Pinyin4jUtil.java │ │ │ QuartzCronDateUtil.java │ │ │ RestTemplateUtil.java │ │ │ SensitiveInfoUtil.java │ │ │ SerializableUtil.java │ │ │ ThrowableUtil.java │ │ │ ValidateCodeUtil.java │ │ │ │ │ └─resources │ │ │ spy.properties │ │ │ │ │ ├─db │ │ │ V1.0__V0.1.0_LOG_INIT.sql │ │ │ V1.1__V0.1.0_RBAC_INIT.sql │ │ │ V1.2__V0.1.0_DEPART_INIT.sql │ │ │ V1.3__V0.1.0_UNDO_LOG_INIT.sql │ │ │ V1.4__V0.1.0_SLOG_INIT.sql │ │ │ │ │ └─mapper │ │ test.xml │ │ │ └─test │ └─java ├─boot-cache │ │ boot-cache.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ │ CacheConfiguration.java │ │ │ │ │ │ │ └─cache │ │ │ ├─aspect │ │ │ │ NoRepeatSubmitAop.java │ │ │ │ │ │ │ ├─config │ │ │ │ CacheRedisConfig.java │ │ │ │ RedissonConfig.java │ │ │ │ │ │ │ ├─controller │ │ │ │ RedissonLockController.java │ │ │ │ │ │ │ ├─redisson │ │ │ │ │ DistributedLocker.java │ │ │ │ │ │ │ │ │ └─impl │ │ │ │ RedisDistributedLocker.java │ │ │ │ │ │ │ └─utils │ │ │ OrderNumberUtil.java │ │ │ RedisLockUtil.java │ │ │ RedisUtil.java │ │ │ │ │ └─resources │ └─test │ └─java ├─boot-generator │ │ boot-generator.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ └─generator │ │ │ MybatisPlusGenerator.java │ │ │ │ │ └─resources │ │ └─templates │ │ controller.java.vm │ │ entity.java.vm │ │ mapper.java.vm │ │ mapper.xml.vm │ │ service.java.vm │ │ serviceImpl.java.vm │ │ │ └─test │ ├─java │ └─resources ├─boot-log │ │ boot-log.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ │ NoticeConfiguration.java │ │ │ │ │ │ │ └─log │ │ │ ├─annotation │ │ │ │ Log.java │ │ │ │ │ │ │ ├─aspect │ │ │ │ LogAspect.java │ │ │ │ │ │ │ ├─dao │ │ │ │ LogDao.java │ │ │ │ │ │ │ ├─entity │ │ │ │ LogPO.java │ │ │ │ │ │ │ ├─job │ │ │ │ DelExpireLog.java │ │ │ │ │ │ │ └─service │ │ │ │ LogService.java │ │ │ │ │ │ │ └─impl │ │ │ LogServiceImpl.java │ │ │ │ │ └─resources │ │ │ logback-spring.xml │ │ │ │ │ └─mapper │ │ LogMapper.xml │ │ │ └─test │ └─java ├─boot-shiro-rbac │ │ boot-shiro-rbac.iml │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─chzu │ │ │ └─boot │ │ │ │ ShiroRbacConfiguration.java │ │ │ │ │ │ │ └─shirorbac │ │ │ ├─auth │ │ │ │ ├─cache │ │ │ │ │ ShiroCache.java │ │ │ │ │ ShiroCacheManager.java │ │ │ │ │ │ │ │ │ ├─jwt │ │ │ │ │ JwtClaim.java │ │ │ │ │ JwtFilter.java │ │ │ │ │ JwtToken.java │ │ │ │ │ JwtUtil.java │ │ │ │ │ │ │ │ │ └─shiro │ │ │ │ ShiroConfig.java │ │ │ │ ShiroRealm.java │ │ │ │ │ │ │ ├─constant │ │ │ │ JwtConstant.java │ │ │ │ │ │ │ ├─controller │ │ │ │ AuthController.java │ │ │ │ UserController.java │ │ │ │ │ │ │ ├─dao │ │ │ │ RbacDepartDao.java │ │ │ │ RbacPermissionDao.java │ │ │ │ RbacRoleDao.java │ │ │ │ RbacUserDao.java │ │ │ │ RbacUserRoleDao.java │ │ │ │ SysTenantDao.java │ │ │ │ │ │ │ ├─dto │ │ │ │ RbacUserCreateDTO.java │ │ │ │ RbacUserDeptSearchDTO.java │ │ │ │ RbacUserLoginDTO.java │ │ │ │ RbacUserRegisterDTO.java │ │ │ │ RbacUserSearchDTO.java │ │ │ │ RbacUserUpdateDTO.java │ │ │ │ │ │ │ ├─entity │ │ │ │ RbacDepart.java │ │ │ │ RbacPermission.java │ │ │ │ RbacRole.java │ │ │ │ RbacRolePermission.java │ │ │ │ RbacUser.java │ │ │ │ RbacUserDepart.java │ │ │ │ RbacUserRole.java │ │ │ │ SysTenant.java │ │ │ │ │ │ │ ├─handler │ │ │ │ FillMetaObjectHandler.java │ │ │ │ GlobalTenantParser.java │ │ │ │ ShiroExceptionHandler.java │ │ │ │ │ │ │ ├─properties │ │ │ │ AuthProperties.java │ │ │ │ │ │ │ ├─service │ │ │ │ │ AuthService.java │ │ │ │ │ RbacDepartService.java │ │ │ │ │ RbacPermissionService.java │ │ │ │ │ RbacRoleService.java │ │ │ │ │ RbacUserService.java │ │ │ │ │ SysTenantService.java │ │ │ │ │ │ │ │ │ └─impl │ │ │ │ AuthServiceImpl.java │ │ │ │ RbacDepartServiceImpl.java │ │ │ │ RbacPermissionServiceImpl.java │ │ │ │ RbacRoleServiceImpl.java │ │ │ │ RbacUserServiceImpl.java │ │ │ │ SysTenantServiceImpl.java │ │ │ │ │ │ │ ├─utils │ │ │ │ ShiroKitUtil.java │ │ │ │ │ │ │ └─vo │ │ │ UserVO.java │ │ │ │ │ └─resources │ │ └─mapper │ │ DepartMapper.xml │ │ PermissionMapper.xml │ │ RoleMapper.xml │ │ SysTenantMapper.xml │ │ UserMapper.xml │ │ UserRoleMapper.xml │ │ │ └─test │ └─java └─boot-user │ boot-user.iml │ pom.xml │ └─src ├─main │ ├─java │ │ └─com │ │ └─chzu │ │ └─boot │ │ │ UserApplication.java │ │ │ │ │ └─user │ │ └─config │ │ Swagger2Config.java │ │ │ └─resources │ │ application-dev.yml │ │ application.yml │ │ banner.txt │ │ │ ├─SQL server │ │ rbac_depart.sql │ │ rbac_permission.sql │ │ sys_log.sql │ │ undo_log.sql │ │ │ └─templates │ kaptcha.html │ └─test └─java └─com └─chzu └─boot └─user UserApplicationTests.java ``` ### 作者 名字:FLZ LWD 邮箱:fanlzihi189@gmail #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request