# jeeJson **Repository Path**: jeejson/jeeJson ## Basic Information - **Project Name**: jeeJson - **Description**: 一套简单易用的企业级web服务端开发脚手架.纯restful Api接口; 基于springboot+mybaits+mysql基础架构; 全局统一的response数据格式; http请求动态跟踪; redis会话管理; token鉴权; 微信/支付宝支付; 封装了类型转换,数据校验,序列化,文件存取,加密解密,短信IM等大量工具方法;集成了shiro,mybatisplus,druid等核心框架;开箱即用,业务清晰,一键部署,简单明了; 不管是拿来学习研究还是作为中小企业的开发原型都再合适不过; 同时欢迎各位大拿拍砖,一起讨论进步. 接口地址--> - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: feature/develop - **Homepage**: https://www.jeejson.com/mbamanage/swagger-ui.html - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 8 - **Created**: 2018-10-03 - **Last Updated**: 2025-07-08 ## Categories & Tags **Categories**: backend **Tags**: None ## README # jeeJson ## jeeJson优势分析 - restful Api接口,前后端完全分离,json是唯一返回的数据格式 - 业务平台和管理后台分离; common项目集成了核心业务; 30分钟即可搭建出一个新的可上线项目 - 统一的数据返回格式,无论请求结果成功还是失败,不论是400还是404,只要服务没挂返回的都是标准JSON - 通过uuid(返回的id字段)唯一标识每一次请求,用id值查询log日志即可拿到本次请求的所有关键操作记录 - http请求动态跟踪,请求IP,接口,方法调用,入参和返回结果全程记录log,同时单独的业务日志记录每一条SQL请求(再也不用为定位bug而烦恼) - hibernate validator数据校验模型,楼主自己研究了list嵌套list的校验注解,一个注解校验所有数据 - 代码生成器: 在mybatisplus的基础上做了优化,基于表结构自动生成controller,service,entity,mapper和mapper xml等基本类 - excel导入导出: 如果你也曾为一次导出数十万条记录到excel而苦恼,一不小心就把服务器拖垮;封装的poi绝对满足你的需求 - Dao层采用mysql+mybatis的主流模型,基础之上又集成了mybatisplus(封装了mybatis的ORM神器)和druid数据源 - 抛弃xml和properties配置方式,使用yml+@Configuration简化spring臃肿的配置文件 - 分环境的配置参数,当前有开发和测试两个环境 - 全局通用配置; 项目自有配置; 环境相关配置; 项目环境相关配置. 一处配置全局可用 - 基础工具类(spring lang3 + guava)和 lambok语法糖(和丑陋的getter/setter方法说拜拜(实体创建从未如此简单)) - 丰富的工具方法和工具类,而且所有工具方法都是static,直接使用(即使需要依赖配置文件属性或外部引用也能转换为static) - 腾讯云IM,简单的通知推送流程 - 多账号体系,手机,微信,QQ多账号绑定,一键登录 - 测试/灰度/生产环境一键部署; debug/info/common多种启动方式(不同启动方式日志粒度不一样) - 集成了腾讯云点播,直播和对象存储 - 基于注解的接口版本控制(同一接口不同版本的URI保持不变) ## jeeJson项目结构 #### biz:面向客户的业务处理平台 - config.shiro:shiro鉴权配置 - controller --> service --> mapper:三层结构模型 - controller --> service --> repository --> mapper:四层结构模型 - repository:封装复杂实体,防止mapper一条SQL过于复杂 #### manage:面向后台的管理系统 - scheduler:所有的定时任务 - consumer:消息队列的消费者(使用common项目utils包下的RabbitSender发送消息) - 其他同biz #### common:biz和manage公用的utils和实体调用jar包 - top.jeejson.annotation.validator:自定义的hibernate validator校验器 - top.jeejson.aspect: AOP切面 - top.jeejson.config:所有配置信息都放在这里,比如OSS,redis,rabbit和短信配置等 - top.jeejson.constant:一些常量和枚举 - top.jeejson.entity:数据库表对应实体;biz保存业务平台实体;manage保存管理系统实体;且实体和表名一一对应 - top.jeejson.exception:自定义异常和异常处理逻辑 - top.jeejson.filter:请求过滤 - HttpLogFilter记录请求日志 - top.jeejson.interceptor:spring拦截器 - top.jeejson.mapper: 业务和管理平台公用的数据库操作mapper - top.jeejson.so:请求入参(封装Controller层的请求参数) - top.jeejson.utils: 工具方法 - top.jeejson.vo:后台业务流转使用的实体(可自定义,和表不直接关联) - top.jeejson.other: 其他的一些类 ## jeeJson技术选型 - 核心框架: Sring boot + Spring Framework + Spring MVC - 持久层: mybatis + mybatisplus + druid + mysql - 项目管理:maven+bat/sh一键发布脚本 - 缓存: redis,autoloadCache(注解式缓存框架) - 安全框架:Apache Shiro JWT; token鉴权,redis缓存会话,kickout自动踢人 - 消息队列: rabbitMq - 数据校验: hibernate validator - 转换工具: FastJsonUtils(对象转字符串),DozerBeanUtil(对象转对象),SerializeUtil(对象序列化) - 任务调度:Quartz - 模板引擎:velocity(自动生成代码) - 日志系统:slf4j+logback - 文件系统:阿里云OSS - excel导入导出:自己封装的poi - 开发利器:lombok+lang3+guava - 接口测试框架:swaggerui(汉化版) - 短信消息通知: 腾讯IM消息推送; 腾讯云短信平台; goEasy webSocket; 极光推送 - 其他:zxing二维码生成,图片验证码生成,@Async异步处理,百度云敏感字过滤... ## 技术文档 附上我的CSDN博客:https://blog.csdn.net/sxj6977380 用到的相关技术我会逐步整理出来,互相学习讨论 ## jeeJson部署文档和开发规范 - 需要部署文档和开发规范的小伙伴加楼主微信 jacob-xiao(免费的,就想拉个群有问题一起讨论,楼主也方便第一时间回复) - 还有我写的一些部署和SQL脚本也会通过微信分享 ## 版权声明 - jeeJson使用 Apache License 2.0 协议,使用的所有技术都是开源框架 - 楼主也只是技术的搬运工而已.项目完全开源,欢迎所有人Fork,欢迎重构和push代码上来 - 不想请楼主喝杯咖啡,也希望您能提点建议留条评论;能再帮忙点亮右上角的star就再好不过了,谢谢 ## 参与贡献 - 欢迎喜欢分享和有时间做开源项目的同学一起努力,帮助jeejson冲击码云的GVP项目 1. Fork 本项目 2. 新建 feature_xxx 分支 3. 提交代码 4. 新建 Pull Request