Spring拓展接口和注解的使用记录

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拓展接口和注解,以后写底层可能会经常用到。

你可能感兴趣的:(java,设计模式,springboot,java,spring,spring,boot)