Spring BootのMethod Validation
@ControllerクラスのPathVariableを、Spring Bean ValidationのMethod Validationで行った。 当初@Configurationクラスに下記のような設定が必要かと思われたが、公式リファレンスを見ると必要ないみたい。 (Spring boot 1.5.2.RELEASE version以上で必要ないことを確認している)
@Configuration public AppConfig { @Bean LocalValidatorFactoryBean localValidatorFactoryBean() { return new LocalValidatorFactoryBean(); } @Bean MethodValidationPostProcessor methodValidationPostProcessor() { MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor(); methodValidationPostProcessor.setValidator(localValidatorFactoryBean()); return methodValidationPostProcessor; } }
Method Validationは↓のように、クラスに対して@Validatedアノテーションを追加するだけで良い。 Spring Boot Reference Guide
@Controller @Validated public class CategoryController { @RequestMapping(value = "/{hoge}") public String showHoge(@PathVariable("hoge") @Size(min = 8, max = 10) final String hoge) { return "hoge"; } }