CSD开发日记(一)-20220517

这篇开发日记详细记录了CSD项目中的关键环节,包括使用即时设计工具进行UI协作,SQL文件的管理策略,微服务基础框架搭建中的maven依赖管理,集成Eureka服务发现与Spring Gateway路由配置,以及Mybatis Plus的集成步骤,涵盖了从设计到开发的多个层面。

1. 即时UI设计共享: 即时设计 - 可实时协作的专业 UI 设计工具即时设计是一款在线可协作的UI设计工具,是可协作的在线sketch、国内版figma,拥有海量的设计资源与素材,支持导入sketch格式的源文件。支持创建交互原型、获取设计标注、快速切图、团队协作等工作。https://js.design/f/acH1v2?p=alEZRpLAkE

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中 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值