前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot 进阶

SpringBoot 进阶

作者头像
希希里之海
发布2019-07-01 17:50:22
5300
发布2019-07-01 17:50:22
举报
文章被收录于专栏:weixuqin 的专栏weixuqin 的专栏

SpringBoot 进阶

这里讲两个小方面:

  • 表单验证
  • AOP

1. 表单验证

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

  1. 在 controller 类中将用 @PathVariableRequestParam 设置参数的单个属性转换为对象:
  2. 在对象类中添加注解,设置拦截属性
  3. 在 controller 类中将设置表单验证的方法添加 @Valid 注解,并添加错误日志

举个例子:

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

Controller 类:

代码语言:javascript
复制
@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);
}

对象类:

代码语言:javascript
复制
@Min(value = 18, message = "未成年少女禁止入内")
private Integer age;

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

2. SpringBoot AOP 方法

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

步骤:

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

完。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot 进阶
    • 1. 表单验证
      • 2. SpringBoot AOP 方法
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档