SpringBoot 进阶

作者: 希希里之海 | 来源:发表于2019-06-26 15:32 被阅读4次

    SpringBoot 进阶

    这里讲两个小方面:

    • 表单验证
    • AOP

    1. 表单验证

    SpringBoot 中的表单验证功能步骤如下:

    1. 在 controller 类中将用 @PathVariableRequestParam 设置参数的单个属性转换为对象:

    2. 在对象类中添加注解,设置拦截属性

    3. 在 controller 类中将设置表单验证的方法添加 @Valid 注解,并添加错误日志

    举个例子:

    设置未满18 岁的少女禁止访问

    Controller 类:

    @PostMapping(value = "/girls")
    public Girl girlAdd(@Valid Girl girl, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
            return null;
        }
    
        girl.setCupSize(girl.getCupSize());
        girl.setAge(girl.getAge());
    
        return girlRepository.save(girl);
    }
    

    对象类:

    @Min(value = 18, message = "未成年少女禁止入内")
    private Integer age;
    

    如果对象的年龄满足 18 岁,将可以添加数据,如果 age < 18, 将无法添加数据。

    2. SpringBoot AOP 方法

    其实具体操作和 Spring 中基于 AspectJ 的 AOP 开发差不多,具体可参考之前我写过的文章:Spring 基于 AspectJ 的 AOP 开发

    步骤:

    1. 导入 maven 依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
        <version></version>
    </dependency>
    
    1. 建立通知/增强类(通过 @Aspect@Component
    @Aspect
    @Component
    public class HttpAspect {
    }
    
    1. 设置切点
    @Before("execution(public  * com.imooc.controller.GirlController.girlList(..))")
    
    1. 通过 @Pointcut 为切点命名
    @Pointcut("execution(public  * com.imooc.controller.GirlController.girlList(..))")
    public void log() {
    }
    
    1. 设置增强方法
    @Before("log()")
    public void doBefore() {
        System.out.println(1111);
    }
    

    完。

    相关文章

      网友评论

        本文标题:SpringBoot 进阶

        本文链接:https://www.haomeiwen.com/subject/divccctx.html