2016-08-25 35 views
4

我正在編寫Spring Boot應用程序。我想知道Spring Boot會自動解析javax中的消息鍵和hibernate驗證註釋。例如:Spring Boot是否自動解析javax中的消息密鑰和休眠驗證註釋

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

我在我的應用程序提供@PropertySource有消息屬性文件和文件也是在我的類路徑。這些密鑰是用@Value解決的,但它們在驗證註釋中沒有解決。

這可能是什麼原因?

我需要配置消息源bean嗎?因爲我看過一些示例沒有配置消息源bean。

回答

3

你的消息是否在正確的位置? Spring Boot 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

是的,這正是您將覆蓋默認文件名的方式。您也可以命名多個文件,該屬性接受逗號分隔的列表 –