1定义异常拦截器,并将异常打印到日志中,创建handle的包创建异常类,标注注解@controllerAdvice的注解此类为一个拦截器

(1)获取日志的方法
Logger logger = LoggerFactory.getLogger(ControllerExceptionHandle.class)

创建方法进行异常的处理
个人博客的后端内容(1)
此类方法中@ExceptionHandler代表此方法可以进行异常的处理
,此方法收了两个数据HttpServletRequest和Exception分别代表请求和异常
通过getRequestUrl的方法可以获取请求的地址
mode.setView可以跳转到具体的页面。

个人博客的后端内容(1)
此为当异常为自定义异常时进行抛出由springboot本身中定义的异常进行处理,此自定义的异常为资源无法找到
个人博客的后端内容(1)

2
日志的处理
此处的需求为:将请求的url,访问者的ip,congtroller中调用的方法,输入的参数,返回的内容在日志中进行输出。

(1)此处使用的方法是面向切面进行编程 创建包Aspect在包中创建LogAspect类加上注解@aspect个人博客的后端内容(1)

在此类中需要定义切面
个人博客的后端内容(1)
@pointCut注解表明此方法为切面com.cmf.blog.web..*(…),此处指定了所用到的controller方法所在的方法

个人博客的后端内容(1)
@Before注解说明此方法在方法执行之前执行,方法中的jointPoist参数为切面中的参数,用来获取调用的方法名和输入的参数

获取请求请求的全路径和ip的地址的方法
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes()

HttpServletRequest request= attribute.getRequest();

获取请求全路径的方法request.getRequestURL().toString(),
获取请求的ip地址 request.getRemoteAddr(), //ip

@After(“log()”)
表明方法在切面执行之后执行

个人博客的后端内容(1)
@AfterReturning在方法执行之后返回值返回后执行

完整代码
个人博客的后端内容(1)

相关文章:

  • 2022-03-04
  • 2021-06-05
  • 2021-08-08
  • 2021-04-14
  • 2021-05-23
  • 2021-05-31
猜你喜欢
  • 2022-12-23
  • 2021-10-07
  • 2021-10-01
  • 2021-10-05
  • 2021-12-15
相关资源
相似解决方案