Ситуация такова, что у меня есть два разных пакета ресурсов, общий и более конкретный.У них нет общих ключей сообщений.
Общий:
<bean id="messageSourceGlobal" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages/messagesGlobal" />
</bean>
Я включаю общий в свой конкретный (очевидно, другой файл):
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages/messages" />
<property name="parentMessageSource" ref="messageSourceGlobal" />
</bean>
Затем Java-код автоматически связывает его:
@Autowired
private MessageSource messages;
Это вызовет исключение при запуске веб-приложения, поскольку найдены два MessageSource
.Очевидно, я могу использовать @Qualifier
, чтобы прояснить Spring, что я хочу.Однако общий пакет ресурсов не будет использоваться в одиночку.Поэтому я подумал, что в этом случае имеет смысл скрывать общий пакет ресурсов от внедрения зависимостей.Одним из преимуществ будет то, что другие не будут сталкиваться с «дубликатами».
Возможно ли это?Как бы я это сделал?