SpringMVC项目中使用@CrossOrigin注解来解决跨域问题 , 本质是CORS
- @RequestMapping("/hello")
- @CrossOrigin(origins = "*")
- //@CrossOrigin(value = "http://localhost:8081") //指定具体ip允许跨域
- public String hello() {
- return "hello world";
- }
SpringBoot项目采用自动配置的方式来配置CORS , 可以通过实现 WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。
- @Configuration
- public class CorsConfig implements WebMvcConfigurer {
-
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**")
- //是否发送Cookie
- .allowCredentials(true)
- //放行哪些原始域
- .allowedOrigins("*")
- .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
- .allowedHeaders("*")
- .exposedHeaders("*");
- }
- }
在SpringCloud项目中一般都会有网关 , 在网关中可以配置CORS跨域, 这样所有通过网关的请求都解决了跨域问题
- spring:
- cloud:
- gateway:
- globalcors:
- cors-configurations:
- '[/**]': # 匹配所有请求
- allowedOrigins: "*" #跨域处理 允许所有的域
- allowedMethods: # 支持的方法
- - GET
- - POST
- - PUT
- - DELETE
SpringBoot : 2.3.4.RELEASE
SpringCloud : Hoxton.SR10
SpringCloudAlibaba : 2.2.5.RELEASE
早期我们一般认为的Spring Cloud五大组件是
Eureka : 注册中心
Ribbon : 负载均衡
Feign : 远程调用
Hystrix : 服务熔断
Zuul/Gateway : 网关
随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件
注册中心/配置中心 Nacos
负载均衡 Ribbon
服务调用 Feign
服务保护 sentinel
服务网关 Gateway
微服务就是一个独立的职责单一的服务应用程序,一个模块
1.优点:松耦合,聚焦单一业务功能,无关开发语言,团队规模降低 , 扩展性好, 天然支持分库 2.缺点:随着服务数量增加,管理复杂,部署复杂,服务器需要增多,服务通信和调用压力增大