イム私の春のブートアプリケーション、私は、クエリパラメータとして日付を受け入れる一部のコントローラを持っている:Spring Bootで `@ DateTimeFormat`パターンをグローバルに設定する方法は?
@RestController
public class MyController {
@GetMapping
public ResponseEntity<?> getDataByDate(
@RequestParam(value = "date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
final LocalDate date) {
return ResponseEntity.ok();
}
}
これがうまく機能し、私も@RequestParam(value = "date", required = false)
を使用してパラメータをオプションとしてマークし、その後、Optional<LocalDate>
を使用することができます。 Springはこれをすべて処理し、パラメータがないときは空のOptionalを渡します。
私はいくつかのコントローラに日付をクエリパラメータとして使用しているので、すべてのLocalDate
クエリパラメータに対してこの動作を構成します。私はspring.mvc.date-pattern
プロパティを試しましたが、それはjava.util.Date
のためだけに働くようです。
ウェブを検索した後、私が思いついたのはControllerAdvice
です。これはanswerから採用しました。この解決策の問題は、つまりOptional<LocalDate>
をもう処理できないことです。これは、Spring Bootで動作を設定する方法が間違っているように感じます。
私の質問は次のとおりです。LocalDate
のパターンを、Springブートで慣用的な方法でクエリパラメータとして使用するにはどのようにグローバルに設定するのですか?
これは、ControllerAdviceを使用してグローバルに行う方法と似ています。 https://stackoverflow.com/questions/40644368/setting-default-datetimeformat-annotation-in-springも参照してください。 – selvinsource
私が言ったように、この解決策は 'Optional'を扱っておらず、それは私には慣用的ではありません。これを簡単に設定するための設定プロパティがいくつかあります。 –
britter
これは簡単にはできないようです。 https://github.com/spring-projects/spring-boot/issues/5523 – britter