2. SQL文件:
1). 分库, 垂直分表, 不水平分表. 四个库: system, tenant, player, result
2) 对应pojo类: 行对象
3) 索引: 避免全文搜索
4) 外键添加, 不利于后期维护
5) 应用连表查询
3. 微服务基础框架搭建:
1) maven -> <dependenciesManagement>标签与<dependencies>标签的区别: 子项目在父项目中查找依赖时, 涉及版本的问题
2) maven父项目: parent ->springboot starter
3) 子项目管理<modules>
4) 父项目间的子项目需互相直接引用依赖
5) mvn idea:module -> 生成.iml文件, 依赖的版本unknown和字符结构出错时无法打包relative parent artifact not found
4. 集成eureka:
1) spring cloud dependencies 依赖: 这是由于父工程选取的是springboot版本2.3.12.RELEASE,在整合网关的时候,需要和父工程版本进行适配,eureka网关pom配置如下,即可解决:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2) springcloud版本和springboot starter的版本需要匹配, 否则报错noSuchMethodError
"spring-cloud": {
"Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5",
"Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5",
"Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6",
"Finchley.M5": "Spring Boot >=2.0.0.M7 and <=2.0.0.M7",
"Finchley.M6": "Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1",
"Finchley.M7": "Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2",
"Finchley.M9": "Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE",
"Finchley.RC1": "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE",
"Finchley.RC2": "Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE",
"Finchley.SR4": "Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT",
"Finchley.BUILD-SNAPSHOT": "Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3",
"Greenwich.M1": "Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE",
"Greenwich.SR5": "Spring Boot >=2.1.0.RELEASE and <2.1.14.BUILD-SNAPSHOT",
"Greenwich.BUILD-SNAPSHOT": "Spring Boot >=2.1.14.BUILD-SNAPSHOT and <2.2.0.M4",
"Hoxton.SR3": "Spring Boot >=2.2.0.M4 and <2.2.6.BUILD-SNAPSHOT",
"Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.2.6.BUILD-SNAPSHOT and <2.3.0.M1"
}
3) 分别开启eureka服务端和客户端
4) 开启.yml注解默认配置地址localhost
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8761/eureka
instance:
prefer-ip-address: true
5) 开启启动类注解支持 @EnableEurekaServer @EnableEurekaClient
5. 集成springgateway:
1) 依赖 springgateway starter和bystrix限流
2) 断言predicate -> 路径, 参数, 方式, 请求头, 响应头;
3) 路由routes -> url, 限流, 限速;
4) 过滤器filters -> 正则表达式
spring:
application:
name: sysgateway
cloud:
gateway:
globalcors:
cors-configurations:
'[/**]': # 匹配所有请求
allowedOrigins: "*" #跨域处理 允许所有的域
allowedMethods: # 支持的方法
- GET
- POST
- PUT
- DELETE
routes:
- id: race
uri: lb://service-race
predicates:
- Path=//race/**
filters:
- StripPrefix= 1
- name: RequestRateLimiter
args:
key-resolver: "#{@ipKeyResolver}"
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
- id: system
uri: lb://system
predicate:
-Path=/sytem/**
filters:
-StripPrefix= 1
6. 集成MP
1) 依赖mybatisplus 和 数据库驱动mysqlconnector, 分页插件pagehelper
2) 下载ORM框架插件lombok
3) 添加mapper.xml文件
4) .yml文件配置: 配置classpath扫描xml路径, pojo别名包扫描typeAlias
5) 添加注解 @MmapperScann扫描接口(实现baseMapper接口)
6) wrapper条件构造器: new queryWrapper<>(pojo) -> 传入wrapper到实现baseMapper接口的方法selectOne中
这篇开发日记详细记录了CSD项目中的关键环节,包括使用即时设计工具进行UI协作,SQL文件的管理策略,微服务基础框架搭建中的maven依赖管理,集成Eureka服务发现与Spring Gateway路由配置,以及Mybatis Plus的集成步骤,涵盖了从设计到开发的多个层面。
https://js.design/f/acH1v2?p=alEZRpLAkE

3374

被折叠的 条评论
为什么被折叠?



