自定义esRestHighLevelClient
需要用到时加上注解,注解使用@import引入配置类,配置类定义了两个bean,一个bean构造RestHighLevelClient,配置连接信息。超时时间 url等定义在一个配置类中,通过配置中心获取具体配置。
获取方式呕吐难过另一个bean实现beanpostprocessor,重写postProcessBeforeInitialization方法,从配置中心获取具体配置,赋值。
ConfigService bean
内部有一个zk的client 读取配置文件中需要获取的配置名 从zk获取数据
自动扫描需要获取远程配置的类
需要从配置中心获取值的类,加上自定义注解 分json test xml三种,启动类加上注解开启功能,该注解import一个配置类,定义一个实现了BeanFactoryPostProcessor接口的类,重写postProcessBeanFactory方法,获取加了自定义注解的bd,通过注解值,通过ConfigService从配置中心获取对应的值并赋值,同时添加一个watch,监听zk数据有变化时,重新赋值
RequestBodyAdvice:
对@RquestBody 进行增强处理,比如所有请求的数据都加密之后放在 body 中,在到达 controller 的方法之前,需要先进行解密,那么就可以通过 RequestBodyAdvice 来进行统一的解密处理,无需在 controller 方法中去做这些通用的操作。
ResponseBodyAdvice:
通过名称就可以知道,这玩意是对@ResponseBody 进行增强处理的,可以对 Controller 中@ResponseBody 类型返回值进行增强处理,也就是说可以拦截@ResponseBody 类型的返回值,进行再次处理,比如加密、包装等操作。
RequestMappingHandlerMapping
url映射统一添加后缀前缀
HandlerMethodArgumentResolver
统一封装登录的用户信息 进行数据绑定,参数验证
HandlerMethodReturnValueHandler
统一处理方法返回值