Я пытаюсь использовать пакеты ресурсов с источником сообщений Spring. Вот как я это делаю:
@Component
public class MessageResolver implements MessageSourceAware {
@Autowired
private MessageSource messageSource;
public void setMessageSource(MessageSource messageSource) {
this.messageSource = messageSource;
}
public String getMessage(){
return messageSource.getMessage("user.welcome", new Object[]{"Rama"}, Locale.US);
}
}
А вот моя структура папок:
messages _en _US.properties содержит только одну строку:
user.welcome=Welcome {0}
Вот используемая конфигурация xml:
<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>resourcebundles/messages</value>
</property>
</bean>
Вот ошибка, которую я получаю:
WARNING: ResourceBundle [resourcebundles/messages] not found for MessageSource: Can't find bundle for base name resourcebundles/messages, locale en_US
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'user.welcome' for locale 'en_US'.
Но если я перемещу свой пакет ресурсов непосредственно в папку ресурсов, он будет работать нормально. В этом случае вот конфигурация xml, которую я использую:
<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
В том, что если мне нужно использовать ResourceBundleMessageSource, я должен поместить свои пакеты ресурсов непосредственно под ресурсы? Если мне нужно хранить его только в указанной папке, есть ли другой способ заставить его работать?
Спасибо!