1
1
<p align =" center " >
2
- <img src="https://img.shields.io/badge/Release-V4.0 .0-green.svg" alt="Downloads">
2
+ <img src="https://img.shields.io/badge/Release-V4.1 .0-green.svg" alt="Downloads">
3
3
<img src="https://img.shields.io/badge/JDK-17+-green.svg" alt="Build Status">
4
4
<img src =" https://img.shields.io/badge/license-Apache%202-blue.svg " alt =" Build Status " >
5
5
<img src =" https://img.shields.io/badge/Spring%20Cloud-2023-blue.svg " alt =" Coverage Status " >
18
18
* [ BladeTool] ( https://github.com/chillzhuang/blade-tool ) 已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发
19
19
* 集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。
20
20
* 注册中心、配置中心选型Nacos,为工程瘦身的同时加强各模块之间的联动。
21
- * 使用Traefik进行反向代理,监听后台变化自动化应用新的配置文件。
22
21
* 极简封装了多租户底层,用更少的代码换来拓展性更强的SaaS多租户系统。
23
- * 借鉴OAuth2,实现了多终端认证系统 ,可控制子系统的token权限互相隔离。
24
- * 借鉴Security,封装了Secure模块 ,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。
25
- * 稳定生产了三年 ,经历了从 Camden -> Hoxton -> 2021 的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构。
22
+ * 借鉴OAuth2,自研多终端认证系统 ,可控制子系统的token权限互相隔离。
23
+ * 借鉴Security,自研Secure模块 ,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。
24
+ * 稳定生产了六年 ,经历了从 Camden -> Hoxton -> 2023 的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构。
26
25
* 项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。
27
26
28
27
## 架构图
29
- <img src =" https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-framework.png " />
28
+ <img src =" https://xbladex.oss-cn-hangzhou.aliyuncs.com/upload/springblade-framework.png " />
29
+
30
+ ## 核心技术栈
31
+
32
+ | 技术栈 | 版本 |
33
+ | ----------------------| ------------|
34
+ | Java | 17+ |
35
+ | NodeJS | 18+ |
36
+ | Spring | 6.1.10 |
37
+ | Spring Boot | 3.2.7 |
38
+ | Spring Cloud | 2023.0.2 |
39
+ | Spring Cloud Alibaba | 2023.0.1.0 |
40
+ | Nacos Alibaba | 2.3.2 |
41
+ | Mybatis Plus | 3.5.7 |
42
+
30
43
31
44
## 工程结构
32
45
```
@@ -53,136 +66,78 @@ SpringBlade
53
66
```
54
67
55
68
## 官方信息
56
- * 官网地址:[ https://bladex.cn ] ( https://bladex.cn )
57
- * 问答社区:[ https://sns.bladex.cn ] ( https://sns.bladex.cn )
58
- * 会员计划:[ SpringBlade会员计划] ( https://gitee.com/smallc/SpringBlade/wikis/SpringBlade会员计划 )
59
- * 交流一群:` 477853168 ` (满)
60
- * 交流二群:` 751253339 ` (满)
61
- * 交流三群:` 784729540 ` (满)
62
- * 交流四群:` 1034621754 ` (满)
63
- * 交流五群:` 946350912 ` (满)
64
- * 交流六群:` 511624269 ` (满)
65
- * 交流七群:` 298061704 `
66
-
67
- ## 在线演示
68
- * Saber-基于Vue:[ https://saber.bladex.cn ] ( https://saber.bladex.cn )
69
- * Sword-基于React:[ https://sword.bladex.cn ] ( https://sword.bladex.cn )
70
-
71
- ## 数据大屏
72
- * 数据大屏展示系统:[ https://data.bladex.cn ] ( https://data.bladex.cn )
69
+
70
+ | 简介 | 内容 |
71
+ | ------| -------------------------------------------------------------------------------|
72
+ | 官网地址 | [ https://bladex.cn ] ( https://bladex.cn ) |
73
+ | 问答社区 | [ https://sns.bladex.cn ] ( https://sns.bladex.cn ) |
74
+ | 会员计划 | [ SpringBlade会员计划] ( https://gitee.com/smallc/SpringBlade/wikis/SpringBlade会员计划 ) |
75
+ | 交流一群 | ` 477853168 ` (满) |
76
+ | 交流二群 | ` 751253339 ` (满) |
77
+ | 交流三群 | ` 784729540 ` (满) |
78
+ | 交流四群 | ` 1034621754 ` (满) |
79
+ | 交流五群 | ` 946350912 ` (满) |
80
+ | 交流六群 | ` 511624269 ` (满) |
81
+ | 交流七群 | ` 298061704 ` |
82
+
83
+ ## 官方产品
84
+
85
+ | 简介 | 演示地址 |
86
+ | ---------------| ------------------------------------------------------|
87
+ | BladeX企业级开发平台 | [ https://saber3.bladex.cn ] ( https://saber3.bladex.cn ) |
88
+ | BladeX可视化数据大屏 | [ https://data.bladex.cn ] ( https://data.bladex.cn ) |
89
+ | BladeX物联网开发平台 | [ https://iot.bladex.cn ] ( https://iot.bladex.cn ) |
90
+
91
+ ## 前端项目
92
+
93
+ | 简介 | 地址 |
94
+ | --------------------| ----------------------------------------------------------------------------------------------------|
95
+ | 前端框架Sword(基于React) | [ https://gitee.com/smallc/Sword ] ( https://gitee.com/smallc/Sword ) |
96
+ | 前端框架Saber(基于Vue2) | [ https://gitee.com/smallc/Saber ] ( https://gitee.com/smallc/Saber ) |
97
+ | 前端框架Saber3(基于Vue3) | [ https://gitee.com/smallc/Saber3 ] ( https://gitee.com/smallc/Saber/tree/3.x/ ) |
98
+
99
+ ## 后端项目
100
+ | 简介 | 地址 |
101
+ | ---------------| ----------------------------------------------------------------------------------------------------|
102
+ | 核心框架项目地址 | [ https://gitee.com/smallc/blade-tool ] ( https://gitee.com/smallc/blade-tool ) |
103
+ | 后端Gitee地址 | [ https://gitee.com/smallc/SpringBlade ] ( https://gitee.com/smallc/SpringBlade ) |
104
+ | 后端Github地址 | [ https://github.com/chillzhuang/SpringBlade ] ( https://github.com/chillzhuang/SpringBlade ) |
105
+ | 后端SpringBoot版 | [ https://gitee.com/smallc/SpringBlade/tree/boot/ ] ( https://gitee.com/smallc/SpringBlade/tree/boot/ ) |
106
+
107
+ ## 安全手册
108
+ | 简介 | 地址 |
109
+ | -----------| ----------------------------------------------------------------------------------------------------|
110
+ | Blade安全手册 | [ https://www.kancloud.cn/smallchill/blade-safety ] ( https://www.kancloud.cn/smallchill/blade-safety ) |
73
111
74
112
## 技术文档
75
- * [ SpringBlade开发手册一览] ( https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册 )
76
- * [ SpringBlade常见问题集锦] ( https://sns.bladex.cn/article-14966.html )
77
- * [ SpringBlade基于Kuboard部署K8S] ( https://kuboard.cn/learning/k8s-practice/spring-blade/ )
78
- * [ SpringBlade基于Rainbond部署] ( https://www.rainbond.com/docs/micro-service/example/blade )
79
-
80
- ## 项目地址
81
- * 核心框架项目地址:[ https://gitee.com/smallc/blade-tool ] ( https://gitee.com/smallc/blade-tool )
82
- * 后端Gitee地址:[ https://gitee.com/smallc/SpringBlade ] ( https://gitee.com/smallc/SpringBlade )
83
- * 后端Github地址:[ https://github.com/chillzhuang/SpringBlade ] ( https://github.com/chillzhuang/SpringBlade )
84
- * 后端SpringBoot版:[ https://gitee.com/smallc/SpringBlade/tree/boot/ ] ( https://gitee.com/smallc/SpringBlade/tree/boot/ )
85
- * 前端框架Sword(基于React):[ https://gitee.com/smallc/Sword ] ( https://gitee.com/smallc/Sword )
86
- * 前端框架Saber(基于Vue2):[ https://gitee.com/smallc/Saber ] ( https://gitee.com/smallc/Saber )
87
- * 前端框架Saber3(基于Vue3):[ https://gitee.com/smallc/Saber3 ] ( https://gitee.com/smallc/Saber/tree/3.x/ )
88
-
89
- # 开源协议
113
+
114
+ | 简介 | 地址 |
115
+ | ---------------------------| --------------------------------------------------------------------------------------------------------------------------|
116
+ | SpringBlade开发手册一览 | [ https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册 ] ( https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册 ) |
117
+ | SpringBlade常见问题集锦 | [ https://sns.bladex.cn/article-14966.html ] ( https://sns.bladex.cn/article-14966.html ) |
118
+ | SpringBlade基于Kuboard部署K8S | [ https://kuboard.cn/learning/k8s-practice/spring-blade/ ] ( https://kuboard.cn/learning/k8s-practice/spring-blade/ ) |
119
+ | SpringBlade基于Rainbond部署 | [ https://www.rainbond.com/docs/micro-service/example/blade ] ( https://www.rainbond.com/docs/micro-service/example/blade ) |
120
+
121
+
122
+ ## 免费公开课
123
+ <table >
124
+ <tr>
125
+ <td><a href="https://space.bilibili.com/525525/channel/seriesdetail?sid=2740449" target="_blank"><img style="width: 300px; height: 170px" src="https://xbladex.oss-cn-hangzhou.aliyuncs.com/upload/springblade-course.jpg"/></a></td>
126
+ <td><img style="width: 300px; height: 170px" src="https://xbladex.oss-cn-hangzhou.aliyuncs.com/upload/springblade-bilibili.jpg"/></td>
127
+ </tr>
128
+ </table >
129
+
130
+ ## 开源协议
90
131
Apache Licence 2.0 ([ 英文原文] ( http://www.apache.org/licenses/LICENSE-2.0.html ) )
91
132
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
92
133
需要满足的条件如下:
93
134
* 需要给代码的用户一份Apache Licence
94
135
* 如果你修改了代码,需要在被修改的文件中说明。
95
136
* 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
96
137
* 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
97
- Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
138
+ Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
98
139
99
140
## 用户权益
100
141
* 允许免费用于学习、毕设、公司项目、私活等,但请保留源码作者信息。
101
142
* 对未经过授权和不遵循 Apache 2.0 协议二次开源或者商业化我们将追究到底。
102
- * 参考请注明:参考自 SpringBlade:https://gitee.com/smallc/SpringBlade。
103
-
104
- # 界面
105
-
106
- ## [ BladeX] ( https://bladex.cn/#/vip ) 工作流一览
107
- <table >
108
- <tr>
109
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow1.png"/></td>
110
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow2.png"/></td>
111
- </tr>
112
- <tr>
113
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow3.png"/></td>
114
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow4.png"/></td>
115
- </tr>
116
- <tr>
117
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow5.png"/></td>
118
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/bladex-flow6.png"/></td>
119
- </tr>
120
- </table >
121
-
122
- ## [ Sword] ( https://gitee.com/smallc/Sword ) 界面一览
123
- <table >
124
- <tr>
125
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-main.png"/></td>
126
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-menu.png"/></td>
127
- </tr>
128
- <tr>
129
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-menu-edit.png"/></td>
130
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-menu-icon.png"/></td>
131
- </tr>
132
- <tr>
133
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-role.png"/></td>
134
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-user.png"/></td>
135
- </tr>
136
- <tr>
137
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-dict.png "/></td>
138
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-log.png"/></td>
139
- </tr>
140
- <tr>
141
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-locale-cn.png"/></td>
142
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/sword-locale-us.png"/></td>
143
- </tr>
144
- </table >
145
-
146
- ## [ Saber] ( https://gitee.com/smallc/Saber ) 界面一览
147
- <table >
148
- <tr>
149
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-user.png"/></td>
150
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-role.png"/></td>
151
- </tr>
152
- <tr>
153
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-dict.png"/></td>
154
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-dict-select.png"/></td>
155
- </tr>
156
- <tr>
157
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-log.png"/></td>
158
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/saber-code.png"/></td>
159
- </tr>
160
- </table >
161
-
162
- ## 监控界面一览
163
- <table >
164
- <tr>
165
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-k8s1.png"/></td>
166
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-k8s2.png"/></td>
167
- </tr>
168
- <tr>
169
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-grafana.png"/></td>
170
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-harbor.png"/></td>
171
- </tr>
172
- <tr>
173
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-traefik.png"/></td>
174
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-traefik-health.png"/></td>
175
- </tr>
176
- <tr>
177
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-nacos.png"/></td>
178
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-sentinel.png"/></td>
179
- </tr>
180
- <tr>
181
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-admin1.png"/></td>
182
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-admin2.png"/></td>
183
- </tr>
184
- <tr>
185
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-swagger1.png"/></td>
186
- <td><img src="https://gitee.com/smallc/SpringBlade/raw/master/pic/springblade-swagger2.png"/></td>
187
- </tr>
188
- </table >
143
+ * 参考请注明:参考自 SpringBlade:https://gitee.com/smallc/SpringBlade。
0 commit comments