本文共 2656 字,大约阅读时间需要 8 分钟。
一、使用@Valid表单验证
1.将我们的项目重新整理一下
2.在Girljava类中进行添加限制
3.在GirlController类的添加女生的方法中添加@Valid
4.模拟请求结果返回为空
二、AOP处理请求
AOP是一种编程范式,与语言无关,是一种程序设计思想。
面向切面(AOP)Aspect Oriented Programming
面向对象(OOP)Object Oriented Programming
面向过程到面向对象
换个角度看世界,换个姿势处理问题
将通用逻辑从业务逻辑中分离出来。
例:记录每一个http请求
1.先添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>
2.在项目中新建一个aspect包下HttpAspect类
(1)添加注解
@Aspect@Component
(2)简便代码
@Before("execution(public * com.lcz.controller.GirlController.*(..))")public void doBefore(){ System.out.println("开始了");}@After("execution(public * com.lcz.controller.GirlController.*(..))")public void doAfter(){ System.out.println("结束了");}
(3)获取请求代码
package com.lcz.aspect;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;/** * @Author:Coding Chaozhang */@Aspect@Componentpublic class HttpAspect { private final static Logger logger=LoggerFactory.getLogger(HttpAspect.class);// @Before("execution(public * com.lcz.controller.GirlController.*(..))")// public void doBefore(){// System.out.println("开始了");// }// @After("execution(public * com.lcz.controller.GirlController.*(..))")// public void doAfter(){// System.out.println("结束了");// } @Pointcut("execution(public * com.lcz.controller.GirlController.*(..))") public void log(){ } @Before("log()") public void doBefore(JoinPoint joinPoint){ //System.out.println("开始了"); //logger.info("开始了"); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request=attributes.getRequest(); //url logger.info("url={}",request.getRequestURI()); //method logger.info("method={}",request.getMethod()); //ip logger.info("ip={}",request.getRemoteAddr()); //类方法 logger.info("class_method={}",joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName()); //参数 logger.info("args={}",joinPoint.getArgs()); } @After("log()") public void doAfter(){ //System.out.println("结束了"); logger.info("结束了"); } @AfterReturning(returning = "object",pointcut = "log()") public void doAfterReturning(Object object){ logger.info("response={}",object.toString()); }}
(4)结果展示
转载地址:https://codingchaozhang.blog.csdn.net/article/details/81016076 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!