2011-05-25 90 views
2
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" 
     p:basename="messages" /> 

bean和顯然在我的速度文件中,我可以使用#springMessage()來獲取所需的消息。但是,如果我想在我的* .java控制器中獲取該消息呢?有沒有我可以使用的一些註釋?用Java代碼(Spring 3)獲取消息

@Annotation('message') 
private String message; 

或者我需要以不同的方式做到這一點?

感謝

+0

這是必須國際化嗎,還是隻有一個'messages.properties'文件? – skaffman 2011-05-25 21:22:21

+0

在這一刻,我只有一個messages.properties文件 – Dawid 2011-05-25 21:29:33

回答

2

只要你不需要任何的國際化,那麼你可以使用messages.properties文件與PropertyPlaceHolderConfigurer(見docs),與@Value註釋

在XML一起:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations" value="classpath:messages.properties"/> 
</bean> 

而且在Java中:

@Value('message') 
private String message; 

您還需要<context:annotation-config/>才能完成這項工作(請參閱docs

+0

好的,這是一個很好的解決方案,但如果我的messages.properties文件會增長和增長呢?它是如何工作的?我的文件內容是否存儲在某處(並且我認爲這不會是一個好的解決方案),或者在PropertyPlaceHolderConfigurer bean中,我只是顯示在哪裏查找當前消息? – Dawid 2011-05-25 22:02:33

+0

@Dawid:如果它增長,它有什麼關係?註釋只是指文件中的單個條目。 – skaffman 2011-05-26 06:12:51