随笔

mac2026-03-14  5

1.简述redis的数据类型有哪些,以及各自的使用场景。 字符串(string),主要做缓存;哈希(hash),做缓存;列表(list),模拟栈和队列;集合(set),可以做抽奖案例,去重;有序列表(sorted set)做排名; 2.Spring的AOP中5种不同时机的增强(即通知类型)是什么,简要解释; before:前置增强,在方法开始时执行的操作 after-returning:后置增强,在方法正常返回时执行的操作 after-throwing:异常增强,在方法发生异常时执行的操作 after:最终增强,在方法结束之后执行的操作,无论方法是否正常结束都会执行 around:环绕增强,可以自定义增强方式 3.SpringMvc的方法返回String和ModelAndView时,如何跳转页面和向页面传递数据,分别说明 返回字符string时,返回的字符串就直接是对应的视图的名字,可以使用方法的形参中的Model对象的addAttribute方法传递数据。返回ModelAndView对象时,使用对象的addObject方法传递数据,使用对象的setViewName方法设置视图的名称 4.SpringCloud如何实现服务的注册 1)服务发布时,指定对应的服务名,将服务注册到注册中心(eureka或zookeeper) 2)注册中心加@EnableEurekaServer,客户端服务用@EnableDiscoveryClient,然后用ribbon或feign进行服务直接的调用发现。 5.Ribbon和Feign的区别 Ribbon和Feign都是用于调用其他服务,不过方式不同。 1、启动类使用的注解不同,Ribbon使用的时@RibbonClient,Feign用的时@EnableFeignClients 2、服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口使用@FeignClient声明。 3、调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。 Feign则是在Ribbon的基础进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可。 不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

最新回复(0)