Spring: MessageSource in ApplicationContext

pizza1234

Erfahrenes Mitglied
Hi,
ich hab zwecks I18N in meinem xyz-servlet.xml eine RessourceBundleMessageSource.
Nun benötige ich die Sourcen aber in einem Service, der in meiner applicationContext.xml konfiguriert ist. Wie bekomme ich sie nun am elegantesten dorthin?

Grüße,
Peter
 
Du implementierst einfach MessageSourceAware, bekommst eine MessageSource injected und kannst so das ReosuceBundle benutzen. Obacht hierbei: Wenn du eine MessageSource im ApplicatinContext eines DispatcherServlet deklarierst ist die nicht in einem AppContext sichtbar, die durch einen ContextLoaderListener erzeugt wird (wegen der AppContextHierarchie).

Gruß
Ollie
 
Hallo Ollie,
genau das ist aber mein Problem!Ich brauche die Sourcen im AppContext des ContextLoaderListeners! Ich habe sie ja schon im Context des DispatcherServlets deklariert, aber an die komme ich halt so wegen der Contexthierarchie nicht dran. Muss ich sie jetzt nochmal im ContextLoaderListener-Context deklarieren, damit ich sie dort benutzen kann oder gibt es noch andere Wege?

Grüße,
Peter
 
Deklarier doch da einfach noch eine MessageSource. Bringt dich ja nicht um... Evtl. macht es auch einfach Sinn verschiedene ResourceBundles für Messages zu haben die aus dem Code stammen im Gegensatz zu richtigen Usermeldungen. Dann kann man die MessageSource im CLL AppContext ersterem zuordnen, die im DS dem zweiteren.

Wenn du die MS nur im CLL AppCOntext deklarierst ist die ja auch für das DS sichtbar, d.h. auch eine alleinige Deklaration im CLL AppContext kann ausreichen. Wie immer... it depends...

Gruß
Ollie
 
Deklarier doch da einfach noch eine MessageSource. Bringt dich ja nicht um... Evtl. macht es auch einfach Sinn verschiedene ResourceBundles für Messages zu haben die aus dem Code stammen im Gegensatz zu richtigen Usermeldungen. Dann kann man die MessageSource im CLL AppContext ersterem zuordnen, die im DS dem zweiteren.

Wenn du die MS nur im CLL AppCOntext deklarierst ist die ja auch für das DS sichtbar, d.h. auch eine alleinige Deklaration im CLL AppContext kann ausreichen. Wie immer... it depends...

Gruß
Ollie
 
Ich hab jetzt einfach noch ne MessageSource im CLL AppContext deklariert. Ich denke, das soll für Systemnachrichten ausreichen.
Danke für die Hilfe!

Grüße,
Peter
 

Neue Beiträge

Zurück