Spring Boot快速入门---(四)spring boot的表单验证以及AOP处理请求
发布日期:2021-06-29 15:42:24 浏览次数:3 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【物联网实训项目】------(一)家庭智慧安防系统之前期项目工作准备
下一篇:Spring Boot快速入门---(三)spring boot的快速连接数据库之spring data jpa以及事务管理

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月06日 04时49分53秒