1
すべてのRESTfulメソッド(> 50)の受信IDパラメータを検証したいとします。Spring MVCは、特定のパラメータオブジェクトのすべてのマッピングに常に@Validを適用します。
私が持っている例として:
@RequestMapping(
value = "/{id}",
method = RequestMethod.GET,
produces = {"application/json"})
@ResponseStatus(HttpStatus.OK)
public
@ResponseBody
Metadata getMetadata(
@PathVariable("id") Long id,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return metadataService.get(id);
}
私はID < 1.場合は、私が実装しました解決策として、すべての要求を拒否したいと思います:
@RequestMapping(
value = "/{id}",
method = RequestMethod.GET,
produces = {"application/json"})
@ResponseStatus(HttpStatus.OK)
public
@ResponseBody
Metadata getMetadata(
@Valid Id id,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return metadataService.get(id.asLong());
}
public class Id {
@Min(1)
@NotNull
private Long id;
public void setId(Long id) {
this.id = id;
}
public Long asLong() {
return id;
}
}
しかし、今、私は暗黙のうちに持っています非常に冗長に見えるId引数のためのすべてのメソッドごとに@Validアノテーションを入れてください。 Springに、着信パラメータとしてIdオブジェクトがある場合は常に@Validにする必要があることを伝える方法はありますか?注釈を毎回入れないで?
ありがとうございました。