Spring Boot结构:验证控制器或服务层中的图像大小吗?

时间:2018-07-23 22:39:30

标签: java spring validation spring-boot

我只想允许某产品的600 x 600像素的图像。

我应该在控制器方法中包含此验证规则,还是该验证部分属于服务层(引发异常)?

@PostMapping("{id}/edit/uploadProductImage")
public String uploadProductImage(...) throws IOException {

  // ...

  BufferedImage image = ImageIO.read(imageForm.getFile().getInputStream());
  Integer width = image.getWidth();
  Integer height = image.getHeight();

  if (!width.equals(600) && !height.equals(600)) {
      model.addAttribute("imageErrorMessage", "Wrong size!");
      result.reject("file");
  } 

  // >>> or put validition to service layer and throw exception?
  productService.storeTeaserImageForProduct(product.get(), imageForm.getFile());

  //...

}

你能给我一个提示吗?

1 个答案:

答案 0 :(得分:0)

我会将图像大小验证作为服务层中的一种方法。将来您可能需要做更多的图像尺寸验证-这样您就无法在控制器中重复使用代码。