{"id":22446154,"url":"https://github.com/muxiangqiu/bdf3","last_synced_at":"2025-07-03T01:36:50.468Z","repository":{"id":44684923,"uuid":"68383423","full_name":"muxiangqiu/bdf3","owner":"muxiangqiu","description":"BDF3 是基于 Spring Boot 组件化的渐进式企业级开发框架。","archived":false,"fork":false,"pushed_at":"2022-06-30T20:13:18.000Z","size":26763,"stargazers_count":117,"open_issues_count":11,"forks_count":66,"subscribers_count":18,"default_branch":"master","last_synced_at":"2023-11-07T19:20:11.436Z","etag":null,"topics":["chat","dorado","framework","management-system","microprogramming","mis","spring-boot","spring-data","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muxiangqiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"custom":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"]}},"created_at":"2016-09-16T13:46:27.000Z","updated_at":"2023-04-28T06:06:38.000Z","dependencies_parsed_at":"2022-09-19T15:21:41.320Z","dependency_job_id":null,"html_url":"https://github.com/muxiangqiu/bdf3","commit_stats":null,"previous_names":[],"tags_count":4,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muxiangqiu%2Fbdf3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muxiangqiu%2Fbdf3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muxiangqiu%2Fbdf3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muxiangqiu%2Fbdf3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muxiangqiu","download_url":"https://codeload.github.com/muxiangqiu/bdf3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228404677,"owners_count":17914696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","dorado","framework","management-system","microprogramming","mis","spring-boot","spring-data","spring-security"],"created_at":"2024-12-06T03:26:21.763Z","updated_at":"2024-12-06T03:26:22.428Z","avatar_url":"https://github.com/muxiangqiu.png","language":"Java","funding_links":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"],"categories":[],"sub_categories":[],"readme":"# BDF3 \n\n**BDF3 是基于 Spring Boot 组件化的渐进式企业级开发框架。** 提供一系列企业级通用模块功能，使用 BDF3 框架在业务项目，我们可以直接专注到业务功能模块的开发。\n\n_**欢迎大家联系我们：技术交流、商业合作、共建开源等。**_\n\n**非多租户模式：**\n![演示 BDF3 框架.gif](https://i.loli.net/2020/10/01/auB1CKnjd8zOZ9w.gif)\n\n**多租户模式：**\n![演示 BDF3 框架（多租户）.gif](https://i.loli.net/2020/10/01/dOht7uPsGcBzja3.gif)\n\n## 特征\n\n* 零配置，开箱即用。基于 Spring Boot 自动配置机制实现\n* 前端界面可视化开发，基于 Dorado 展现中间件实现\n* 前端组件标准化，后端开发者也能轻松开发前端\n* 抽象业务通用能力，提供通用功能模块，这些通用模块开箱即用，如权限管理、多租户、工作流、报表、实时通信、公众号、微程序、云数据库管理、规则引擎、日志、菜单、认证、字典、数据导入和导出等等\n* 基于角色的权限授权，权限粒度为组件级别\n* 开发企业管理系统效率极高\n* 多数据源智能切换、开启事务\n* 多租户支持，横向无限扩展，传统项目零代码切换为多租户项目\n* 提供丰富多样的主页面选择\n* 功能组件化，自由选择需要的组件\n* 基于 JPA 实现的极简、可读性高的结构化查询 Linq，与 Dorado 无缝集成\n* 基于 Spring Security 实现的认证与授权，开箱即用\n\n\n## 在线演示\n\n* [传统风格多租户版](http://119.45.227.114:8081/bdf3.security.ui.view.Main.d) \n* [实时通讯+公众号+微程序风格非多租户版](http://119.45.227.114:8080/bdf3.notice.ui.view.Chat.d)\n* [方块风格非多租户版](http://119.45.227.114:8080/bdf3.security.ui.view.Portal.d)\n* [传统风格非多租户版](http://119.45.227.114:8080/bdf3.security.ui.view.Main.d)\n\n其中，公司 ID 为 master，用户名/密码为 admin/123456\n\n## 开发文档\n\n请使用手机扫描本文章最后的 QQ（609822297）群二维码，加群获取开发文档。\n\n## 快速开始\n\nBDF3 基于 Spring Boot 自动配置机制实现，做到了零配置，开箱即用，没有额外学习成本，BDF3 也提供了一系列 pom 类型的 Starter 模块，也 Spring Boot 提供的 Starter 模块类似，Starter 模块简化了 BDF3 的模块依赖管理，让项目依赖变得更为简单，好维护。\n\n#### 第一步：初始化一个标准的 Maven 项目\n\n创建一个标准的 Maven 项目，名称为 bdf3-sample，项目打包类型为 jar，项目的父项目指向 bdf3-starter-parent。最终生成的 pom文件如下：\n```xml\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\n  \u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\n  \u003c!-- 继承的 BDF3 提供的依赖管理的父项目 --\u003e\n  \u003cparent\u003e\n    \u003cgroupId\u003ecom.bstek.bdf3\u003c/groupId\u003e\n    \u003cartifactId\u003ebdf3-starter-parent\u003c/artifactId\u003e\n    \u003cversion\u003e1.1.0-SNAPSHOT\u003c/version\u003e\n  \u003c/parent\u003e\n  \u003cartifactId\u003ebdf3-sample\u003c/artifactId\u003e\n  \u003cdependencies\u003e\n    \u003c!-- 添加 BDF3 提供的预定义依赖 Starter，BDF3 还提供了其他的 Starter --\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.bstek.bdf3\u003c/groupId\u003e\n      \u003cartifactId\u003ebdf3-starter\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    \u003c!-- 开发测试工具 --\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n      \u003cartifactId\u003espring-boot-devtools\u003c/artifactId\u003e\n      \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n    \u003c!-- 数据库驱动，正式场景改为 mysql、oracle 等等数据库驱动 --\u003e\n    \u003cdependency\u003e \n      \u003cgroupId\u003ecom.h2database\u003c/groupId\u003e\n      \u003cartifactId\u003eh2\u003c/artifactId\u003e \n    \u003c/dependency\u003e\n  \u003c/dependencies\u003e\n  \u003c!-- BDF3 提供的模块存放的 maven 私服仓库 --\u003e\n  \u003crepositories\u003e\n    \u003crepository\u003e\n      \u003cid\u003ebsdn-maven-repository\u003c/id\u003e\n      \u003curl\u003ehttp://nexus.bsdn.org/content/groups/public/\u003c/url\u003e\n    \u003c/repository\u003e\n  \u003c/repositories\u003e\n\u003c/project\u003e\n```\n\n#### 第二步：启动类\n```java\npackage com.bstek.bdf3.sample;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cache.annotation.EnableCaching;\n\n/**\n * @author Kevin Yang (mailto:kevin@cellbang.com)\n * @since 2016年12月10日\n */\n@SpringBootApplication  // Spring Boot 启动类注解\n@EnableCaching          // 开启缓存功能注解\npublic class SampleApplication {\n\n    public static void main(String[] args) throws Exception {\n\t\t    SpringApplication.run(SampleApplication.class, args);\n    }\n  \n}\n\n```\n\n通过以上两个步骤，一个基本的BDF3 框架的项目就搭建好了。直接运行项目的启动类（运行 main 静态方法）[示例下载](https://github.com/muxiangqiu/bdf3/blob/master/sample/bdf3-sample.zip?raw=true)。\n\n## 数据源与 JPA 配置\n\n在 Spring 的配置中，如下配置：\n\n```\n# 文件 application.properties\n# 服务器端口设置\nserver.port = 8080\n# 项目上下文路由\nserver.context-path=/bdf\n# 是否打印sql语句\nspring.jpa.showSql=true\n#hibernate 反向创建表设置，update启动时更新表结构，create 启动时重新创建表结构，none 启动时不检查\nspring.jpa.hibernate.ddl-auto=update\n# Spring Boot 热部署设置，添加以下文件匹配规则，改动不重启。\nspring.devtools.restart.additional-exclude=com/**\n#数据库脚本的编码设置为 UTF-8\nspring.datasource.sql-script-encoding=UTF-8\n\n# 数据源配置，pom 中需要引入对应的数据库 jdbc 依赖，以下使用 mysql 数据库为例\nspring.datasource.continue-on-error=true\nspring.datasource.url=jdbc:mysql://localhost:3306/bdf3\nspring.datasource.username=root\nspring.datasource.password=root\nspring.datasource.driver-class-name=com.mysql.jdbc.Driver\n# 如果数据库为非嵌入式数据库，这个属性第一次启动的时候一定要设置为ALWAYS，用于初始化数据，初始化好后，可以关闭，也可以不关闭，有自己决定\nspring.datasource.initialization-mode=ALWAYS\n```\n\n## Spring Boot 文档教程\n\n[Spring Boot 文档教程](https://projects.spring.io/spring-boot/#quick-start)\n\n## 交流群\n\n\u003cimg src=\"https://i.loli.net/2020/10/01/RzYQv9Mfu7cOsWj.jpg\" width=\"300px\"/\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuxiangqiu%2Fbdf3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuxiangqiu%2Fbdf3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuxiangqiu%2Fbdf3/lists"}