0
点赞
收藏
分享

微信扫一扫

@notNull 注解和@notEmpty注解的区别

概括

因为在开发中经常会用到这两个注解,但是对于具体区别倒是没有在意,收集整了一下,来对这两个注解进行区别。

@notNull

使用该注解后,对于该注解后面的参数添加了一层校验,校验的条件是值不能为null。但是可以

"" ,''

这种值,所以一般用在基本数据类型上面。

@NotNull(message = "Field cannot be null")
private String name;

@notEmpty

该注解会确保字段的值不仅不为 null,并且对于集合、字符串等,不能为空(例如,字符串不能为空字符串,集合不能为空)。

通常用于验证 String、Collection、Map 等类型的字段进行添加校验。相比于@NotNull更加严谨一点,能够更好的保证不出现空指针异常。

@NotEmpty(message = "Field cannot be empty")
private String name;

同样还可以再Controller层进行使用。如下所示:

public ResponseVO uploadImage(@NotNull MultipartFile file, @NotNull Boolean createThumbnail) {
        String month = DateUtils.format(new Date(), DateTimePatternEnum.YYYYMM.getPattren());
        String folder = appConfig.getProjectFolder() + Constants.FILE_FOLDER + Constants.FILE_COVER + month;
        File folderFile = new File(folder);
        if (!folderFile.exists()) {
            folderFile.mkdirs();
        }

        String filename = file.getOriginalFilename();
        String substring = StringTools.getFileSuffix2(filename);
        String realFileName = StringTools.getRandomNumber(Constants.LENGTH_30) + substring;
        String filePath = folder + "/" + realFileName;
        if (createThumbnail) {
//            生成缩略图
            fFmpegUtils.createImageThumbnail(filePath);
        }

        return getSuccessResponseVO(Constants.FILE_COVER + month + "/" + realFileName);

    }

不过需要注意的是导入的包和上面的不同。

import org.springframework.validation.annotation.Validated;

举报

相关推荐

0 条评论