zoukankan      html  css  js  c++  java
  • SpringBoot 进阶

    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);
    }
    

    完。

  • 相关阅读:
    Spring data jpa使用枚举
    IO
    Tomcat相关问题
    flex中为控件添加监听器并计算
    导出excel
    webService常见问题
    从指定的路径中查找含有特殊字符串的文件
    flex中日期的格式化
    flex与后台及页面间对象的传递
    打印时有选择的打印
  • 原文地址:https://www.cnblogs.com/weixuqin/p/11090170.html
Copyright © 2011-2022 走看看