工作中使用的代码片段

219 阅读1分钟

Spring-Web中获取HttpServletRequest对象

ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request = Objects.requireNonNull(attributes).getRequest();

SpringMvc统一异常处理 —— @ControllerAdvice

@ControllerAdvice
@Slf4j
public class DemoExceptionHandler {
	private static final String DEFAULT_ERROR_VIEW = "error";

	/**
	 * 统一 json 异常处理
	 *
	 * @param exception JsonException
	 * @return 统一返回 json 格式
	 */
	@ExceptionHandler(value = JsonException.class)
	@ResponseBody
	public ApiResponse jsonErrorHandler(JsonException exception) {
		log.error("【JsonException】:{}", exception.getMessage());
		return ApiResponse.ofException(exception);
	}

	/**
	 * 统一 页面 异常处理
	 *
	 * @param exception PageException
	 * @return 统一跳转到异常页面
	 */
	@ExceptionHandler(value = PageException.class)
	public ModelAndView pageErrorHandler(PageException exception) {
		log.error("【DemoPageException】:{}", exception.getMessage());
		ModelAndView view = new ModelAndView();
		view.addObject("message", exception.getMessage());
		view.setViewName(DEFAULT_ERROR_VIEW);
		return view;
	}

利用commons-lang3解析可能存在多种日期格式的日期

private static String[] possibleDateFormats = {
        "yyyy-MM-dd HH:mm:ss",
        "yyyy-MM-dd",
        "HH:mm:ss",
        "yyyy/M/d HH:mm:ss"
};

public static Date parseDate(String inputDate) {
    try {
        return DateUtils.parseDate(inputDate, possibleDateFormats);
    } catch (ParseException e) {
        log.warn("#parseDate# 解析日期{},发生错误", inputDate, e);
    }
    return new Date();
}