2016-08-25 7 views
4

私はSpringブートアプリケーションを作成していました。私はSpringブートがjavaxとhibernate検証アノテーションのメッセージキーを自動的に解決するのか知りたかったのです。例えば:私はメッセージプロパティファイルとファイルを自分のアプリケーションに@PropertySourceを提供してきたSpringブートは、javaxとhibernate検証アノテーションのメッセージキーを自動的に解決しますか?

@NotEmpty(message = "${message.key}") 
String name; 

は私のクラスパスでもあります。キーは@Valueで解決されていますが、検証注釈で解決されていません。

この理由は何ですか?

メッセージソースBeanを設定する必要がありますか?なぜなら、メッセージソースBeanを設定せずにサンプルを処理しているのが分かりましたからです。

答えて

3

メッセージは正しい場所にありますか?スプリングブートautomatically registers a MessageSource bean for youですので、メッセージをsrc/main/resources/messages.propertiesファイルに入れてください。自動設定を有効にし、クラスパスにhibernate-validatorの依存関係がある場合は、すべてがそのまま動作します。それはそれらを解決していないという事実が予想さ^^回答を

+0

おかげであるように、また@PropertySource

は、アプリケーションの構成プロパティではなく、メッセージに関連しています。したがって、プロパティファイル名の名前はmessage.propertiesでなければなりませんか?ファイルまたは複数の検証メッセージファイルの名前が異なる場合はどうすればよいですか? – Kiba

+0

私は別の名前のファイルまたは複数のファイルがある場合私spring.messages.basenameプロパティを使用する必要があります。自動的に複数のファイルを取得するためのプロパティファイル名の構文はありますか? – Kiba

+0

はい、これはデフォルトのファイル名を上書きする方法です。複数のファイルに名前を付けることもできますが、このプロパティではコンマ区切りのリストを使用できます –

関連する問題