読者です 読者をやめる 読者になる 読者になる

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";
    }
}