BallCat Java 快速开发脚手架开源项目

我要开发同款
匿名用户2021年08月19日
38阅读
开发技术Java
所属分类Web应用开发、后台管理系统(模板)
授权协议MIT

作品详情

简介

BallCat 旨在为项目快速开发提供一系列的基础能力,方便使用者根据项目需求快速进行功能拓展。

在以前使用其他后台管理脚手架进行开发时,经常会遇到因为项目业务原因需要进行二开的问题,在长期的开发后,一旦源项目进行迭代升级,很难进行同步更新。

为了解决这一问题,BallCat 将自身所有的业务和功能都设计为可插拔的依赖,方便用户自由组装和卸载。

开发时,用户以依赖的方式引入 BallCat 所提供的模块,当 BallCat 项目升级时,用户只需同步更新版本号,即可获得功能更新。

Ballcat已将所有JAR包都推送至中央仓库,也会为每个版本的升级改动列出详细的更新日志,以及增量SQL。

如果在使用中遇到了必须通过二开修改源码才能解决的问题或功能时,欢迎提issues,如果功能具有通用性,我们会为BallCat添加此能力,也欢迎直接PR你的改动。

• Github地址:https://github.com/ballcat-projects/ballcat• Gitee地址:https://gitee.com/ballcat-projects/ballcat(如果Github访问速度比较慢的话,可以访问Gitee)• 文档地址:https://www.ballcat.cn/

技术栈•后端 :SpringBoot、SpringSecurity、SpringSecurityOAuth2、MybatisPlus、Hutool•前端 :Vue、VueRouter、Vuex、Axios、AntDesignVue(前端对应的react版本已经在开发中,Vue3版本也是未来肯定要支持的)

相关仓库项目简介gitee地址github地址ballcat核心项目组件https://gitee.com/ballcat-projects/ballcathttps://github.com/ballcat-projects/ballcatballcat-ui-vue管理后台前端https://gitee.com/ballcat-projects/ballcat-ui-vuehttps://github.com/ballcat-projects/ballcat-ui-vueballcat-codegen代码生成器https://gitee.com/ballcat-projects/ballcat-codegenhttps://github.com/ballcat-projects/ballcat-codegenballcat-samples使用示例https://gitee.com/ballcat-projects/ballcat-sampleshttps://github.com/ballcat-projects/ballcat-samplesballcat-boot单体应用模板项目https://gitee.com/ballcat-projects/ballcat-boothttps://github.com/ballcat-projects/ballcat-boot注意ballcat是核心组件仓库,如果需要启动后端服务,请使用ballcat-boot

项目演示后台管理演示地址 (账户:admin;密码:a123456):

https://preview.ballcat.cn/

演示效果:

代码生成器代码生成器提供了在线编辑模板的功能,以及多数据源的支持。

只需启动一个代码生成器服务放在测试服,所有项目需要生成代码时都可以复用此生成器,减少了频繁切换项目启动生成器的繁琐。

演示地址:

https://codegen.ballcat.cn/

演示效果:

业务模块BallCat 为后台管理的一些基本需求提供了以下五个业务模块,用户可以按需引入:

•ballcat-auth(授权模块) :用于支撑OAuth2的授权服务器,集成了登录图像验证码,登录AES密码解密过滤器等相关功能。目前使用Spring-Security-OAuth2作为基础,后续将迁移到 spring-authorization-server 项目。•ballcat-system(系统模块) :提供了用户管理、角色管理、菜单管理、组织架构、字典管理、系统配置等这些后台管理系统中不可或缺的核心功能。•ballcat-log(日志模块) :提供了登录日志、操作日志、访问日志等日志记录功能,提供了TraceId,可串联一次请求中的所有日志信息。日志默认存储位置在mysql中,用户可以按需定制日志处理逻辑。•ballcat-i18n(国际化模块) :提供了基于数据库的国际化信息配置存储方案,提供local+redis双重缓存处理,提升国际化处理效率。•ballcat-notify(通知模块) :目前提供了系统公告的能力,下个版本将会新增通知相关的功能。

BallCat项目模块结构

功能模块功能模块和业务无关,非ballcat项目也可以引入这些模块获得功能增强,用户按照实际业务需求选择模块进行集成。

包括但不限于以下这些功能 :

•数据权限控制,在orm层实现,基于Jsqparse解析Sql,进行权限范围的sql注入•国际化功能,不仅支持spring原生的文件配置形式,还可以自定义动态加载国际化配置•注解使用redis 缓存、分布式锁,防击穿,全局key前缀等功能•注解快速实现excel导入导出功能•支付功能:包括支付宝、微信、USDT虚拟货币等•基于S3协议的对象存储封装,方便一套代码兼容大部分云平台,如阿里云,七牛云,腾讯云

目前提供的功能模块列表

|--ballcat-common--基础公用组件||--ballcat-common-core--核心组件||--ballcat-common-desensitize--脱敏基础组件||--ballcat-common-i18n--国际化基础组件||--ballcat-common-idempoten--幂等基础组件||--ballcat-common-log--日志基础组件||--ballcat-common-model--公用的一些模型||--ballcat-common-redis--redis基础组件||--ballcat-common-security--安全相关,以及资源服务器配置||--ballcat-common-util--公用的工具|`--ballcat-common-websocket--对于springwebsocket的一些抽象封装|--ballcat-dependencies--ballcat项目本身各子模块的依赖管理,以及第三方模块的依赖管理|--ballcat-extends--扩展模块,大多是对于一些第三方组件的扩展处理||--ballcat-extend-dingtalk--钉钉的一些操作封装||--ballcat-extend-kafka--kafka的一些操作扩展||--ballcat-extend-kafka-stream--kafka流处理的一些操作扩展||--ballcat-extend-mybatis-plus--基于mybatis-plus相关的一些扩展||--ballcat-extend-pay-ali--针对支付宝支付的一些操作封装||--ballcat-extend-pay-virtual--针对虚拟货币支付的一些操作封装||--ballcat-extend-pay-wx--针对微信支付的一些操作封装|`--ballcat-extend-redis-module--redismodule的扩展功能(暂时只有布隆过滤器)|--ballcat-starters||--ballcat-spring-boot-starter-datascope--数据权限控制||--ballcat-spring-boot-starter-dingtalk--钉钉集成工具||--ballcat-spring-boot-starter-easyexcel--通过注解快速导入导出excle(easyexcel)||--ballcat-spring-boot-starter-i18n--国际化方案||--ballcat-spring-boot-starter-job--定时任务集成(目前仅xxl-job)||--ballcat-spring-boot-starter-kafka--消息队列kafka集成||--ballcat-spring-boot-starter-log--访问日志,操作日志,TraceId注入||--ballcat-spring-boot-starter-mail--邮件发送||--ballcat-spring-boot-starter-oss--对象存储(所有支持AWSS3协议的云存储,如阿里云,七牛云,腾讯云)||--ballcat-spring-boot-starter-pay--支付相关||--ballcat-spring-boot-starter-redis--提供注解使用redis,分布式锁,防击穿,全局key前缀等功能||--ballcat-spring-boot-starter-sms--短信接入starter||--ballcat-spring-boot-starter-swagger--swagger文档配置(提供无注册中心的文档聚合方案)||--ballcat-spring-boot-starter-websocket--基于common-websocket的自动配置|`--ballcat-spring-boot-starter-xss--xss防注入相关快速上手环境准备开始之前,请先确保您已经配置好以下环境

名称版本JDK1.8MySQL5.7.8+Redis3.2+node10.0+npm6.0+另:请在您的开发工具中安装好 Lombok 插件,Lombok的使用参看其官方文档

最新版本的Idea中已经自带了Lombok插件

数据库配置•版本:mysql5.7.8+•默认字符集:utf8mb4•默认排序规则:utf8mb4_general_ci

按下面顺序依次执行 ballcat/docs 目录下的数据库脚本:

#建库语句scheme.sql#核心库ballcat.sql#国际化相关SQL,无需国际化功能则不用执行此处代码ballcat-i18n.sql配置本地hosts建议使用switchHost软件管理hosts配置!

也可直接修改本地host文件:windows系统下host文件位于 C:\Windows\System32\drivers\etc\hosts

新增如下host:

127.0.0.1ballcat-mysql127.0.0.1ballcat-redis127.0.0.1ballcat-admin其中 127.0.0.1 按需替换成开发环境ip

服务端准备代码下载gitclonehttps://github.com/ballcat-projects/ballcat-boot.git项目启动直接在开发工具中启动SpringBoot的启动类 AdminApplication 即可

前端准备代码下载gitclonehttps://github.com/ballcat-projects/ballcat-ui-vue.git依赖安装安装项目依赖,使用yarn或npm都可以

#安装依赖yarninstall-----或者--------#安装依赖npminstall项目启动打开命令行进入项目根目录,或在IDE提供的命令行工具中执行

#启动服务yarnserve-----或者-----#启动服务npmrunserve访问项目默认前端项目路径:https://localhost:8000/

默认用户名密码:admin/a123456

更多文档参看官方文档,快速搭建一章:https://www.ballcat.cn/guide/quick-start.html

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论