代码中自定义抛出的异常的回滚的办法
1.抛出RuntimeException
2.抛出Exception,同时在事务声明中加上@Transactional(rollbackFor = Exception.class)
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调。
2.拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
3.filter和servlet不受spring管理,所以不能依赖注入spring管理的bean。
4.请求处理过程为:
1)Filter pre进入过滤器,执行chain.doFilter(request,response)方法。
2)调用springmvc的doService即servlet的service()方法。
3)dispatcher springMVC请求分发。
4)preHandle进入拦截器,在controller之前执行。
5)controller。
6)postHandle在controller的return ModelAndView前执行。
7)afterCompletion在controller完成后调用
8)FilterAfter
参照
https://blog.csdn.net/dhklsl/article/details/88354216
https://www.cnblogs.com/helios-fz/p/10996932.html
https://blog.csdn.net/clementad/article/details/47339519