1
1
# Spring Cloud 开发框架使用指南
2
2
3
- ## 环境版本
3
+ ## 组件及工具使用版本说明
4
4
5
5
* 组件* | * 版本* |* 必要性*
6
6
---|---|---
@@ -13,38 +13,176 @@ RabbitMQ|3.7.19|✓
13
13
Docker|18.06+|
14
14
Docker-compose|1.24.1|
15
15
Docker-compose File|3.7|
16
- ## 项目架构
17
16
18
17
## 开发环境配置
19
- - ** 使用Oracle数据库**
20
-
21
- - 注册Oracle驱动
18
+ - 开发环境必须具备以下基本工具依赖
19
+ - JDK及其命令行工具
20
+ - Maven命令行工具
21
+ - Maven依赖源(私库、镜像源、本地源)
22
+ - IDE(推荐Jetbrains IDEA)
23
+ - Docker(如果不准备使用,那么基于Docker的一键开发依赖组件配置就无法使用,需要手工提供开发依赖环境)
24
+
25
+ - Oracle数据库驱动
26
+ 1 . 说明
27
+ - ojdbc?.jar Oracle数据库客户端驱动
28
+ - ucp.jar Oracle数据库连接池驱动
22
29
23
- 执行scripts/oracle/11.2目录下install脚本来注册ojdbc和ucp到本地maven repository
30
+ 2 . 注册Oracle驱动到本地库
31
+
32
+ 在开发机上执行scripts/oracle/11.2目录下install脚本来注册ojdbc和ucp到本地库
33
+
34
+ 备注:项目自带驱动支持版本为11.2的Oracle数据库,如果使用其他版本,请自行去[ Oracle官方网站] ( www.oracle.com ) 下载对应驱动替换ojdbc?.jar和ucp.jar,并修改install脚本中对应的文件名
35
+
36
+ ## 项目目录
24
37
25
- 项目自带驱动支持版本为11.2的Oracle数据库,如果使用其他版本,请自行去www.oracle.com下载对应驱动替换ojdbc?.jar和ucp.jar,并修改install脚本中对应的文件名
38
+ ├── additional 附加组件,包括Oracle11g2 Java访问组件(jar)及Maven Local Repository注册脚本
39
+ ├── auth-server 基于Spring Security OAuth的SSO单点登录
40
+ ├── common 通用工具类
41
+ ├── config-server 基于Spring Cloud Config的配置管理服务
42
+ ├── eureka-server 基于Spring Cloud Netflex组件的Eureka注册中心
43
+ ├── ops
44
+ │ ├── admin-server Spring Boot Admin JVM服务监控
45
+ │ ├── hystrix-dashboard Hystrix断路器展示服务
46
+ │ └── turbine-server Hystrix断路器汇聚服务
47
+ ├── scripts 数据库创建脚本(在docker-compose.yaml文件中被引用)
48
+ └── service 业务服务(所有业务开发服务请放置于该目录下)
49
+ │ ├── user-info 样例用户服务
50
+ │ └── zuul Api Gateway网关服务
51
+ ├── .gitignore
52
+ ├── docker-compose.yaml 基于Docker Compose的开发依赖组件配置文件
53
+ ├── Oracle DB docker image guide.md
54
+ ├── README.md
55
+ └── pom.xml
56
+
57
+ ## 快速启动
58
+
59
+ ### 数据库初始化
60
+
61
+ - 修改数据库连接参数(需要数据库访问的项目根目录下pom.xml文件)
62
+ ``` xml
63
+ <properties >
64
+ <jdbcDriver >oracle.jdbc.OracleDriver</jdbcDriver >
65
+ <!-- TIPS: 该处使用了XML CDATA来处理数据库连接字符串中的特殊符号 -->
66
+ <jdbcURL ><![CDATA[ jdbc:oracle:thin:@localhost:1521:XE]]> </jdbcURL >
67
+ <jdbcUserId >newtouch</jdbcUserId >
68
+ <jdbcPassword >123456</jdbcPassword >
69
+ </properties >
70
+ ```
71
+ - 执行数据库环境初始化命令
72
+ ``` bash
73
+ cd [子项目根目录]
74
+ mvn flyway:migrate
75
+ ```
76
+ 如果执行失败可以先使用以下命令进行环境清空,然后重新执行初始化命令
77
+ ``` bash
78
+ mvn flyway:clean
79
+ ```
80
+
81
+ ### 编译打包
82
+ - 执行编译打包命令
83
+ ``` bash
84
+ cd [项目根目录]
85
+ mvn clean package -Dmaven.test.skip=true
86
+ ```
87
+ ### 启动及测试
88
+ - (可选)启动依赖环境组件(MySQL、ORACLE、REDIS、RabbitMQ、Spring Boot Admin、Eureka、Turbine、Hystrix Dashboard、Zipkin)
89
+ ``` bash
90
+ cd [项目根目录]
91
+ docker-compose up -d
92
+ ```
93
+ - 顺序启动子项目
94
+ ``` bash
95
+
96
+ ```
97
+ ## 特性说明
98
+
99
+ ### Maven插件
100
+
101
+ #### 数据库版本管理插件 flyway-maven-plugin
102
+
103
+ #### Docker镜像打包插件 dockerfile-maven-plugin
104
+
105
+ #### 数据库ORM代码自动生成器插件 mybatis-generator-maven-plugin
106
+
107
+ ### 其他特性
108
+ #### Oracle数据库
26
109
27
110
- 添加pom依赖
28
111
29
- 在项目根目录的 <dependencyManagement >段中添加依赖管理
112
+ - 在根项目的pom.xml的 <dependencyManagement>段中添加依赖管理
30
113
```xml
31
114
<dependencies>
32
- <!-- Oracle 11gR2 Jdbc 驱动 -->
33
- <dependency >
34
- <groupId >com.oracle</groupId >
35
- <artifactId >ojdbc6</artifactId >
36
- <version >11.2.0.4.0</version >
37
- </dependency >
38
- <!-- Oracle 11gR2 通用数据库连接池 -->
39
- <dependency >
40
- <groupId >com.oracle</groupId >
41
- <artifactId >ucp</artifactId >
42
- <version >11.2.0.3.0</version >
43
- </dependency >
115
+ <!-- 省略其他依赖 -->
116
+ <!-- Oracle 11gR2 Jdbc 驱动 -->
117
+ <dependency>
118
+ <groupId>com.oracle</groupId>
119
+ <artifactId>ojdbc6</artifactId>
120
+ <version>11.2.0.4.0</version>
121
+ </dependency>
122
+ <!-- Oracle 11gR2 通用数据库连接池 -->
123
+ <dependency>
124
+ <groupId>com.oracle</groupId>
125
+ <artifactId>ucp</artifactId>
126
+ <version>11.2.0.3.0</version>
127
+ </dependency>
44
128
</dependencies>
45
129
```
130
+
131
+ - 在业务服务项目的pom.xml的<dependencies>段中添加依赖,此处不用再指定驱动版本
132
+ ```xml
133
+ <dependencies>
134
+ <!-- 省略其他依赖 -->
135
+ <!-- Oracle 11gR2 Jdbc 驱动 -->
136
+ <dependency>
137
+ <groupId>com.oracle.ojdbc</groupId>
138
+ <artifactId>ojdbc6</artifactId>
139
+ <scope>runtime</scope>
140
+ </dependency>
141
+ <dependency>
142
+ <groupId>com.oracle.ojdbc</groupId>
143
+ <artifactId>ucp</artifactId>
144
+ </dependency>
145
+ </dependencies>
146
+ ```
147
+ - Oracle数据库访问项目配置(样例项目User-Info)
148
+ - 在applicaton-xxx.yaml文件中添加以下内容
149
+ ```yaml
150
+ spring:
151
+ datasource:
152
+ driver-class-name: oracle.jdbc.OracleDriver
153
+ url: jdbc:oracle:thin:@localhost:1521:XE
154
+ username: newtouch
155
+ password: 123456
156
+ ```
157
+
158
+ #### 数据库ORM组件 MyBatis
159
+
160
+ #### MyBatis自动分页插件 PageHelper
161
+
162
+ #### 基于注解的参数校验
163
+
164
+ #### Spring Cloud特性
165
+
166
+ ##### 注册服务 Eureka
167
+
168
+ ##### 单点登录服务 Security OAuth2 JWT
169
+
170
+ ##### 配置服务 Config
171
+
172
+ ##### 客户端负载均衡 Ribbon
173
+
174
+ ##### 声明式服务调用 Feign
175
+
176
+ ##### 容错保护 Hystrix
177
+
178
+ ##### 服务网关 Zuul
179
+
180
+ ##### 基于消息驱动开发 Stream
181
+
182
+ ##### 分布式链路跟踪 Open Zipkin
46
183
47
- ## 样例项目
184
+ ##### 服务监控 Admin
48
185
49
- ## 开发测试
186
+ ##### 集群断路聚合 Turbine
50
187
188
+ ##### 集群断路监控 Turbine Dashboard
0 commit comments