29 Star 218 Fork 79

budwk / budwk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 7.35 KB
一键复制 编辑 原始数据 按行查看 历史

BudWk 开源企业级Java Web开发框架

Gitee GVP GitHub release License PowerByNutz

在力所能及的情况下,最大限度的提高Web开发人员的生产力

  • QQ1群: 68428921(已满)
  • QQ2群: 24457628

🚀 简介

BudWk 原名 NutzWk ,是基于国产框架 nutzboot 开发的开源 Java企业级Web开发框架,拥有近十年的开源历史,积累了一大批企业和个人用户,历经V1-V8数次迭代。

V8 在 V7具备的API网关、组件库、认证中心、控制中心等功能基础上,进一步对前后端功能进行升级改造、提升用户体验,同时大大减轻开发工作量,提升开发效率,为产品升级迭代提供极大便利。

框架同时提供微服务单应用微服务分布式版本供选择,后台集权限体系、系统参数、数据字典、站内消息、定时任务、CMS、微信等最常用功能,使其具有上手容易、开发便捷、扩展灵活等特性,特别适合各类大中小型定制化项目需求。

🎉 本版说明(BudWk v8.x)

功能特点

  • 使用一套注解实现 OpenAPI3 在线文档的自动生成,同时实现表单参数验证功能,一举多得,减少开发量
  • 统一异常拦截处理,业务逻辑判断抛出异常即可被捕获友好输出错误,无需一堆 if else 判断
  • 一套控制类日志注解,轻松记录操作人、操作时间、IP、请求参数、响应结果,支持扩展不同数据存储方式
  • Excel 文件快速导入导出,只需在 Pojo 类上定义注解即可,支持键值对解析、子类属性解析、自定义日期格式等
  • Vue3前端表格支持动态列勾选显示、排序、固定等操作,分页组件进行了封装比Vue2版本减轻 80% 代码量
  • 具备丰富的 wk-starter 组件库,使开发微服务应用像搭积木一样简单,组件开发也非常容易

运行环境

  • JDK 11 + 或 OpenJDK 11 +
  • Redis 6.x +
  • MariaDB 10.x + 或 MySql 5.7、Oracle、SqlServer、达梦、人大金仓等
  • Nacos 2.0.3 +

开发工具

  • IntelliJ IDEA
  • Visual Studio Code
  • Node v19/v18 +
  • Maven 3.6.x +
  • Git

目录说明

┌ 前端
│    ├─wk-vue3-admin    Vue3
│    └─wk-vue-admin     Vue2
└─后端
     ├─wk-starter       组件库
     ├─wk-mini          单应用版本
     └─···              分布式版本
        ├─wk-gateway    API网关
        ├─wk-ucenter    用户中心 
        ├─wk-platform   控制中心
        ├─wk-cms        内容管理 
        ├─wk-wechat     微信管理 

简易架构图(分布式版本)

BUDWK架构

V8技术选型

后端技术

技术 名称 官网
Nutz JavaEE应用框架 https://nutzam.com
NutzBoot 微服务框架 https://github.com/nutzam/nutzboot
SaToken 权限框架 http://sa-token.dev33.cn
Druid 数据库连接池 https://github.com/alibaba/druid
Nacos 配置及注册中心 https://nacos.io
Dubbo 分布式服务框架 https://dubbo.apache.org
Redis 分布式缓存数据库 https://redis.io
Quartz 作业调度框架 https://www.quartz-scheduler.org
IdGenerator 雪花主键生成 https://github.com/yitter/IdGenerator
Hutool 工具集合 https://hutool.cn

Vue3前端技术

技术 名称 官网
Vue3 MVVM框架 https://vuejs.org
Vite 应用框架 https://vitejs.dev
Element-Plus 基于Vue3的UI框架 https://element-plus.gitee.io/zh-CN
Font-awesome 字体图标 https://fontawesome.com

简易开发指南

Java后端

  •   确保 MySql、Redis、Nacos 默认端口配置并已启动
  •   MySql 创建名为 budwk_v8 的空数据库,在每个微服务模块启动时会自动建表,同时初始化数据
  •   在单个NB模块下执行 mvn compile nutzboot:run 运行或 mvn package nutzboot:shade 生成可执行jar包
  •   在后端项目根目录执行 mvn -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Dnutzboot.dst=E:/dst clean package nutzboot:shade 可将所有可运行jar包生成到指定位置
  •   分别启动jar文件 nohup java -jar budwk.jar >/dev/null 2>&1 &
  •   正常启动前端后访问 http://127.0.0.1:8800 用户名 superadmin 密码 1
  •   API调试 http://127.0.0.1:9900/platform/openapi http://127.0.0.1:9900/ucenter/openapi
  •   wk-mini 单应用版本API调试路径为 http://127.0.0.1:9900/openapi
  •   IDEA命令行参数增加 --nutz.profiles.active=dev 可以指定加载 application-dev.yaml 配置文件

Vue3前端(wk-vue3-admin)

  • npm install pnpm
  • pnpm install
  • pnpm run dev

详细开发指南

https://budwk.com

服务器部署

jar 运行

  •   指定jar中配置文件运行 nohup java -jar -Dnutz.profiles.active=pro -Xmx450m wk-mini.jar >/dev/null 2>&1 &
  •   加载文件夹中配置文件运行 nohup java -jar -Dnutz.boot.configure.yaml.dir=/data/budwk/ -Xmx450m wk-mini.jar >/dev/null 2>&1 &

docker 部署示例

wk-gateway

  • 编译可执行jar mvn clean package nutzboot:shade

  • 编译docker image docker build -t wizzer/budwk-wk-gateway:v8.1.0 . --platform linux/amd64

wk-platform

  • 编译可执行jar mvn clean package nutzboot:shade

  • 编译docker image docker build -t wizzer/budwk-wk-platform:v8.1.0 . --platform linux/amd64

wk-ucenter

  • 编译可执行jar mvn clean package nutzboot:shade

  • 编译docker image docker build -t wizzer/budwk-wk-ucenter:v8.1.0 . --platform linux/amd64

其他NB模块省略...然后挂载 /conf 路径,把配置文件 application.yaml 放好

🤝 鸣谢

  •   @wendal 代码贡献者,Nutz/LuatOS主要作者
  •   @rekoe 代码贡献者
  •   @enilu IDEA插件代码贡献者
  •   @threefish IDEA插件代码贡献者
  •   @loyalove 前端代码贡献者
  •   @syrxw 前端代码贡献者

如果您觉得还不错请在右上角点一下 star,帮忙转发,谢谢 🙏🙏🙏 大家的支持是开源最大动力

Java
1
https://gitee.com/budwk/budwk.git
git@gitee.com:budwk/budwk.git
budwk
budwk
budwk
v8.x

搜索帮助