1、RequestMapping 修饰方法与类有啥区别?
(1)SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求。
(2)在控制器的类定义及方法定义处都可以标注
A、类定义处:提供初步的请求映射信息,相对于Web应用的根目录。
B、方法定义处:提供进一步的细分映射信息,相对于类定义处的URL。若类定义处未标注@RequestMapping注解,则方法处标记的 URL 相对于Web应用的根目录。
2、使用Feign远程调用的逻辑?
首先使用Feign要定义Feign接口,服务A通过本服务的Feign接口调用其他服务的方法。
其次需要在启动类上加上@EnableFeignClients("com.atguigu.gulimall.product.feign"),用于定要要找的Feign接口的位置。如果Feign接口包和启动类同级,可以不加路径。
@FeignClient("gulimall-coupon")//指定其他服务所在的模块
public interface CouponFeignService {
@PostMapping("/coupon/spubounds/save") //写出绝对路径
R saveSpuBounds(@RequestBody SpuBoundsTo spuBoundsTo);//调用对应的方法
@PostMapping("/coupon/skufullreduction/saveInfo") //写出绝对路径
R saveSkuReduction(@RequestBody SkuReductionTo skuReductionTo);
}
3、依赖的命名?什么starter?
- 比如在Maven的依赖中加入spring-boot-starter-web就能使项目支持Spring MVC,并且Spring Boot还为我们做了很多默认配置,无需再依赖spring-web、spring-webmvc等相关包及做相关配置就能够立即使用起来 。
- 相似的还有spring-boot-starter-validation、spring-boot-starter-test、spring-cloud-starter-nacos-discover、spring-cloud-starter-nacos-config。
- spring-boot-starter-web包含了spring-boot-starter,所以使用spring-boot-starter-web就等于是有了spring-boot-starter的功能,除非只是要使用spring-boot-starter启动项目或者日志功能,而又不想引用过多的jar包时才用spring-boot-starter。
4、热更新
- nacos利用bootstrap.properties实现配置中心功能(热更新),现在需要添加spring-cloud-starter-bootstrap依赖,并且需要在使用@Value("${test.message}")的引用类上添加@RefreshScope注解从而实现热更新。因为cloud现在不想在支持bootstrap.properties了。
- 命名空间可以实现不同微服务之间配置的隔离,使用配置分组区分开发环境。
- 微服务任何配置信息,配置文件都可以放在配置中心中,只需要在bootstrap.properties中说明加载配置中心中的那些配置
5、网关(Gateway):
1. 路由 2. 断言 3.过滤器