Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Spring BootでバリデーションのメッセージをValidationMessages.properties以外にする

$
0
0

Spring Bootはデフォルトで検証エラーのメッセージをValidationMessages.propertiesから取得します。これを変えたい!って思ったら以下のようにします。

手順としては

  • LocalValidatorFactoryBeanを作成する
    • messageSourceを任意のものにする
  • WebMvcAutoConfigurationAdapterのaddValidatorで上のLocalValidatorFactoryBeanを返す

コードとしては以下のような感じになります。

package okazuki.validationEdu;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.validation.Validator;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;

@SpringBootApplicationpublicclass App extends WebMvcAutoConfigurationAdapter {
    
    @Autowired
    MessageSource messageSource;
    
    publicstaticvoid main(String[] args) {
        SpringApplication.run(App.class, args);
    }

    @Beanpublic LocalValidatorFactoryBean validator() {
        LocalValidatorFactoryBean f = new LocalValidatorFactoryBean();
        f.setValidationMessageSource(this.messageSource);
        return f;
    }
    
    @Overridepublic Validator getValidator() {
        return validator();
    }
}

これでmessages.propertiesにメッセージを集約できます。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>