# 基础功能

# 全局参数校验

全局参数校验主要是解决对于开启了参数校验的情况下需要每次手动判断是否存在异常信息导致产生重复代码的问题而创建了一个AOP切面,同意进行参数校验的结果判断的问题。

在默认情况下,全局参数校验结果判断功能是开启的,如果需要关闭此功能,可以通过以下配置进行

yishuifengxiao.aop.enable=false

在开启全局参数校验结果判断功能的前提下,要想此功能生效,还需要在Controller的方法里携带上BindingResult参数。一个简单的例子如下:

@AuthUser(required = true)
@ApiOperation(value = "更新用户信息", notes = "根据id更新用户基本信息")
@PostMapping("/updateUser")
@ResponseBody
public Response<Object> updateUser(HttpServletRequest request, HttpServletResponse response, 
@Validated @RequestBody AduitDto aduitDto, BindingResult errors) throws CustomException {

    aduitService.updateUser(aduitDto);
    return Response.suc();
}

易水工具组件主要是根据@ResponseBodyBindingResult设置切面的,要想此功能生效,这两个注解不能忘记。




# 跨域支持

在默认情况下,全局跨域支持功能已经开启,如果要关闭此功能,可以通过以下配置进行

yishuifengxiao.cors.enable=false

其他额外配置如下

# 是否允许携带凭据,默认为true
yishuifengxiao.cors.allow-credentials=true
# 跨域设置允许的请求头,默认为所有
yishuifengxiao.cors.allowed-headers=*
# 跨域设置允许的请求方法,默认为所有
yishuifengxiao.cors.allowed-methods=*
# 跨域设置允许的Origins,默认为所有
yishuifengxiao.cors.allowed-origins=*
# 跨域设置允许的路径,默认为所有路径
yishuifengxiao.cors.url=/**



# 全局异常处理

在默认情况下,全局异常处理功能已经开启,如果要关闭此功能,可以通过以下配置进行

yishuifengxiao.error.enable=false

再开启此功能的情况下,可以根据不同的异常配置不同的提示信息,配置格式下

yishuifengxiao.error.map.异常类=提示信息

示例如下

yishuifengxiao.error.map.ConstraintViolationException=已有重复数据

在上述配置中ConstraintViolationException是异常类的名字,例如ConstraintViolationExceptionDataIntegrityViolationExceptionDuplicateKeyException,对于多个需要提示的错误,配置成多行即可,例如

yishuifengxiao.error.map.ConstraintViolationException=全局异常捕获到异常信息了
yishuifengxiao.error.map.DataIntegrityViolationException=全局异常捕获到异常信息了
yishuifengxiao.error.map.DuplicateKeyException=全局异常捕获到异常信息了



# 辅助工具

通用辅助工具是基于ApplicationContextAware的接口扩展,通过ApplicationContextAware注入spring 上下文,让用户无需再在各个类中显式注入其他的引用依赖,能快速地通过 ApplicationContext 获取到对象的示例。

本工具里常用的方法签名有

    /**
	 * 将源对象里的属性赋值给目标对象
	 * 
	 * @param <S>    源对象
	 * @param <T>    目标对象
	 * @param source 源对象
	 * @param target 目标对象
	 * @return
	 */
    <S, T> T copy(S source, T target)

    /**
	 * 对参数进行非空和空格处理,并对undefined值的数据进行过滤
	 * 
	 * @param str
	 * @return
	 */
    String undefined(String str)

    /**
	 * 对传入的参数进行非空处理
	 * 
	 * @param t 传入的参数
	 * @return 处理后的参数
	 */
    <T> T convert(T t)
    
    /**
	 * 根据class获取实例对象
	 * 
	 * @param <T>
	 * @param clazz
	 * @return
	 */
    <T> T getBean(Class<? extends T> clazz) 

Last Updated: 10/29/2020, 10:54:11 PM