• Spring Boot 中如何解决跨域问题、Spring Cloud 5大组件、微服务的优缺点是什么?


    Spring Boot 中如何解决跨域问题 ?

    SpringMVC项目中使用@CrossOrigin注解来解决跨域问题 , 本质是CORS

    1.  @RequestMapping("/hello")
    2.  @CrossOrigin(origins = "*")
    3.  //@CrossOrigin(value = "http://localhost:8081") //指定具体ip允许跨域
    4.  public String hello() {
    5.      return "hello world";
    6.  }

    SpringBoot项目采用自动配置的方式来配置CORS , 可以通过实现 WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

    1.  @Configuration
    2.  public class CorsConfig implements WebMvcConfigurer {
    3.  ​
    4.      @Override
    5.      public void addCorsMappings(CorsRegistry registry) {
    6.          registry.addMapping("/**")
    7.                  //是否发送Cookie
    8.                 .allowCredentials(true)
    9.                  //放行哪些原始域
    10.                 .allowedOrigins("*")
    11.                 .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
    12.                 .allowedHeaders("*")
    13.                 .exposedHeaders("*");
    14.     }
    15.  }

    在SpringCloud项目中一般都会有网关 , 在网关中可以配置CORS跨域, 这样所有通过网关的请求都解决了跨域问题

    1.  spring:
    2.   cloud:
    3.     gateway:
    4.       globalcors:
    5.         cors-configurations:
    6.           '[/**]': # 匹配所有请求
    7.             allowedOrigins: "*" #跨域处理 允许所有的域
    8.             allowedMethods: # 支持的方法
    9.               - GET
    10.               - POST
    11.               - PUT
    12.               - DELETE

    09- 你们项目中使用的SpringBoot是哪个版本 ?

    • SpringBoot : 2.3.4.RELEASE

    • SpringCloud : Hoxton.SR10

    • SpringCloudAlibaba : 2.2.5.RELEASE

    10- Spring Cloud 5大组件有哪些?

    早期我们一般认为的Spring Cloud五大组件是

    • Eureka : 注册中心

    • Ribbon : 负载均衡

    • Feign : 远程调用

    • Hystrix : 服务熔断

    • Zuul/Gateway : 网关

    随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件

    • 注册中心/配置中心 Nacos

    • 负载均衡 Ribbon

    • 服务调用 Feign

    • 服务保护 sentinel

    • 服务网关 Gateway

    11- 什么是微服务?微服务的优缺点是什么?

    微服务就是一个独立的职责单一的服务应用程序,一个模块

    1.优点:松耦合,聚焦单一业务功能,无关开发语言,团队规模降低 , 扩展性好, 天然支持分库 2.缺点:随着服务数量增加,管理复杂,部署复杂,服务器需要增多,服务通信和调用压力增大

  • 相关阅读:
    工厂模式【简单工厂+工厂+抽象工厂】总结
    can 接口调试am3352
    Docker知识总结 (三) Docker 常用命令
    go之字符串拼接使用->性能->背后原因
    AI大模型
    Go中为什么json.Unmarshal为什么需要指向map的指针?
    2023山东大健康产业博览会|阿胶|酵素|肽产品|氢健康展
    字符串常用方法
    深度学习领域中的耦合与解耦
    leetcode - 1930. Unique Length-3 Palindromic Subsequences
  • 原文地址:https://blog.csdn.net/2302_79020600/article/details/139658639