21 Star 197 Fork 68

miaoyinjun / jjche-boot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

jjche-boot

企业级快速开发平台,前后端分离设计,基于SpringBoot2.x、SpringCloud、Spring Security,MyBatis-plus,Vue,在线代码生成器快速生成前后端CRUD代码,支持单体服务与微服务之间灵活切换、帮助开发者节省70%的重复工作,更专注业务,节省开发成本,100%开源。

体验地址:http://149.28.233.161

登录:账号:demo,密码:123456

技术文档:https://miaoyinjun.gitee.io/jjche-boot-book/

项目介绍

  1. 基础功能:用户、角色、菜单、部门、岗位、数据字典、任务调度、版本

  2. 微服务(spring cloud):支持单体服务与微服务之间灵活切换,灰度发布、流量控制、熔断降级

  3. 在线代码生成器

    后端代码:controller、service、mapper、DO、DTO、VO、类、方法注释、字段验证、日志、接口文档,菜单-权限控制SQL

    前端代码:api.js,index.vue

    手动MERGE后,不需要任何修改直接使用

  4. 操作日志:基于注解,可在方法执行前/后记录日志(用户、请求参数、类型、描述、结果、耗时、浏览器、操作系统、IP来源等)

    ​ 新增场景:入参包含学生姓名:张三,日志记录:新增的学生姓名是[张三]

    ​ 删除场景:入参只有学生的id,可在注解中调用自定义函数查出学生姓名,日志记录:被删除的学生姓名是[张三]

    ​ 修改场景:入参包含修改后的学生姓名:李四,日志记录:修改内容:「[(姓名),旧值:'张三',新值:'李四']」

  5. 查询过滤器:SQL自动动态拼装,条件(等于、不等于、大于、小于、全模糊、左模糊、右模糊、区间、包含、不为空、为空、自定义SQL等)

  6. 数据权限:菜单级、按钮级、数据行级、数据列级、列表和表单字段级

  7. 字段验证:借助强大的注解验证和异常捕捉实现(非空、数字、日期、手机号、邮件等)

  8. 文件服务:集成本地存储、七牛云,minio,可自由扩展

  9. 数据库:支持读写分离、分库分表

  10. 接口定义:统一restful风格,完整的出入参格式定义、集成knife4j在线接口文档,JWT token安全验证

  11. 系统监控:在线用户、操作日志、服务器JVM监控、SQL监控、spring-boot-admin应用监控,Redis,最后一次GIT提交信息

  12. 权限控制:RBAC基于角色控制访问

  13. 对外接口安全:通过应用标识、签名、出入参密文、限流、白名单传输方式,保证接口数据安全

  14. 账号/密码策略:账号锁定、账号过期、密码过期、密码复杂度定义

  15. 工具类:集成hutool、短信发送、邮件发送、Excel导出

  16. 前端crud组件,实现页面的分页查询、新增、修改、删除、导出

  17. 数据库版本控制:Liquibase跟sql版本变化,回滚

  18. 开发规范:阿里代码规范文档、注释规范

  19. 最佳实践:提供本地开发、测试、生产、Docker部署文档

技术栈

技术 名称 说明
springBoot springBoot框架
spring-cloud-alibaba 微服务
spring Security 安全框架 权限认证
mybatis plus mybatis增强 增强对数据库操作工具
Druid 数据库连接池 提供监控
knife4j swagger接口文档增强
MapStruct Bean映射工具
jetCache 通用缓存框架
liquibase 管理数据库变化工具 跟踪,管理和应用数据库变化的数据库重构工具
p6spy SQL日志打印工具
spring-boot-admin 管理和监控SpringBoot应用程序
jasypt 配置文件加密
lombok 生成POJO的getter/setter
hutool 工具类库
logback 日志框架
xxl-job 分布式定时框架
jgitflow-maven-plugin 简化实现git flow工作流程插件
git-commit-id-plugin git commit信息收集插件 maven打jar包时带上 git commit相关信息
maven-javadoc-plugin javadoc插件 检查,填充部分注释信息
screw-maven-plugin 数据库文档生成插件
springloaded 热部署插件

模块说明

jjche-boot

jjche-boot-ui -- 前端

jjche-boot --后端

jjche-boot-demo -- 单体入口

jjche-boot-parent -- 父模块

jjche-boot-base-api -- 单体/微服务交互定义

jjche-boot-common -- 通用定义

jjche-boot-eladmin -- 基础业务

jjche-boot-eladmin-generator -- 代码生成

jjche-boot-eladmin-logging -- 日志

jjche-boot-eladmin-tools -- 工具

jjche-boot-starters -- 组件增强

jjche-boot-cache-starter -- 缓存 jjche-boot-cloud-gray-starter -- 灰度

jjche-boot-cloud-starter 微服务定义

jjche-boot-core-starter -- 核心

jjche-boot-filter-starter -- 安全过滤器

jjche-boot-shardingsphere-starter 分库分表

jjche-boot-serialize-starter -- 序列化处理

jjche-boot-log-starter -- 日志

jjche-boot-mybatis-starter -- mybatis定义

jjche-boot-sba-starter -- spring-boot-admin增强

jjche-boot-security-starter -- 安全

jjche-boot-starter -- 系统定义

jjche-boot-swagger-starter -- swagger增强

jjche-boot-system-starter -- 系统核心

jjche-boot-userdetail-starter -- 默认安全认证定义

jjche-cloud -- 微服务入口

jjche-cloud-demo-provider -- 演示基础服务

jjche-cloud-gateway -- 网关

jjche-cloud-minio -- minio文件

jjche-cloud-monitor -- 监控

jjche-cloud-nacos -- 注册中心

jjche-cloud-sentinel -- Sentinel流控熔断

jjche-cloud-system -- 系统服务

jjche-cloud-xxljob -- 分布式定时服务

image-20210916171732597

image-20210916171752707

image-20211208135706365

image-20211208134446909

image-20211208135631192

image-20211208135759032

image-20211111145248092

image-20211111152519726

image-20211122161617315

image-20210926170407498

image-20211202181126329

image-20210927154722486

image-20210918105646982

特别鸣谢

  1. 感谢eladmin 允许在基础业务功能上进行扩展

eladmin作为独立模块引入,并作了以下扩展

  1. 后端全部重写,原业务逻辑保留,Mybatis替换JPA

  2. 新的注释和代码规范

  3. 引入了新的日志模块mzt-biz-log,并做了扩展

  4. 同时支持账号密码与短信登录,可再扩展其它方式登录

  5. 引入liquibase控制数据库结构变化,支持回滚

  6. 行列数据级别权限控制

  7. 增加注解,入参解密,出参加密,举例:返回id主键加密,保证数据安全

  8. 引入SpringBootAdmin,服务端与客户端都为当前服务,非开发模式必须登录才能使用,可查看git最后一次的提交信息,用于验证项目版本是否正确

  9. 引入knife4j替换原swagger,并增加了枚举支持,可在api文档界面下拉选择枚举

  10. 增加账号过期、密码过期、隔N天强制修改密码等机制

  11. 支持参数验证@RequestParam、@requestbody

  12. 增加版本控制菜单

  13. 使用vue-admin-beautiful-pro 重写了登录页面

  14. 定时器增加分布式锁,避免启动多个服务场景任务重复执行

  15. crud.js支持打开编辑界面时可请求获取数据接口

  16. 支持 spring cloud

  17. 其它自行体验

  18. 感谢mouzt 提供的日志组件

TODO

  1. springCloud完善微服务周边组件
  2. k8s
  3. istio

支持

如果您喜欢该项目,请给项目点亮⭐️,让更多的开发者看到

交流

QQ交流群:604384111

如果您还想支持一下,请作者喝杯 咖啡吧🤓

支付宝 微信
1640670237773__01 mm_facetoface_collect_qrcode_1640667560388__01__01
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

企业级快速开发平台,前后端分离设计,基于SpringBoot2.x、SpringCloud、Spring Security,MyBatis-plus,Vue,在线代码生成器快速生成前后端CRUD代码,支持单体服务与微服务之间灵活切换、帮助开发者节省70%的重复工作,更专注业务,节省开发成本,100%开源,记得上边点个⭐️ 关注更新。 展开 收起
取消

发行版 (18)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/miaoyinjun/jjche-boot.git
git@gitee.com:miaoyinjun/jjche-boot.git
miaoyinjun
jjche-boot
jjche-boot
master

搜索帮助

14c37bed 8189591 565d56ea 8189591