spring-@ControllerAdvice(转载)

194 阅读1分钟

熟知的用法

@ControllerAdivce注解与@ExceptionHandler注解联合使用,统一处理异常

InitBinder联合使用

@ControllerAdivce注解与@InitBinder注解联合使用

@ControllerAdvice
public class SpringControllerAdvice {
    @InitBinder
    public void globalInitBinder(WebDataBinder binder) {
        binder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
  }
}

ModelAttribute联合使用

@ControllerAdvice
public class SpringControllerAdvice {
    @ModelAttribute(value = "message")
    public String globalModelAttribute() {
        System.out.println("添加了message全局属性。");
        return "输出了message全局属性。";
    }
}
@Controller
public class UserController {
    @RequestMapping(value = "/users", method = RequestMethod.GET)
    public void users(@ModelAttribute("message") String message) {
        System.out.println(message);
  }
}

总结

被@ExceptionHandler、@InitBinder和@ModelAttribute注解的方法都会作用在被@RequestMappping注解的方法上

参考文章:

www.cnblogs.com/yanggb/p/10…