Spring拓展接口之-1
ApplicationContext.publishEvent() 发布事件
ApplicationEvent--用来承载真正处理的数据对象
@EventListener(ApiLogEvent.class) 配合这个注解进行事件的真正处理触发
此拓展作用适用于异步解耦操作:如 记录操作日志,记录错误日志等,封装到底层,在我们的业务服务里剩一个存储日志的接口即可。
HandlerMethodArgumentResolver--springmvc用来解析参数并绑定入参的接口
实现此类并拓展方法
/**
* 出参设置
*
* @param methodParameter 入参集合
* @param modelAndViewContainer model 和 view
* @param nativeWebRequest web相关
* @param webDataBinderFactory 入参解析
* @return 包装对象
*/
@Override
public Object resolveArgument(MethodParameter methodParameter,
ModelAndViewContainer modelAndViewContainer,
NativeWebRequest nativeWebRequest,
WebDataBinderFactory webDataBinderFactory) {
return AuthUtil.getUser();
}
在所有的控制器方法中都可以直接用对应返回的对象类型进行接收,用来解决前端传输token后网关认证完解析,直接将解析后的用户信息绑定到入参,直接进行使用,而不用再传别的用户信息参数。
ControllerAdvice @RestControllerAdvice
配合@ExceptionHandler(ServiceException.class)
完成统一异常处理的操作,针对固定的异常类型进行友好返回提示
零散记录用到的spring拓展接口和注解,以后写底层可能会经常用到。