java.lang.Object | |||
↳ | org.springframework.context.support.MessageSourceSupport | ||
↳ | org.springframework.context.support.AbstractMessageSource | ||
↳ | org.springframework.context.support.ResourceBundleMessageSource |
MessageSource
implementation that
accesses resource bundles using specified basenames. This class relies
on the underlying JDK's ResourceBundle
implementation,
in combination with the JDK's standard message parsing provided by
MessageFormat
.
This MessageSource caches both the accessed ResourceBundle instances and
the generated MessageFormats for each message. It also implements rendering of
no-arg messages without MessageFormat, as supported by the AbstractMessageSource
base class. The caching provided by this MessageSource is significantly faster
than the built-in caching of the java.util.ResourceBundle
class.
Unfortunately, java.util.ResourceBundle
caches loaded bundles
forever: Reloading a bundle during VM execution is not possible.
As this MessageSource relies on ResourceBundle, it faces the same limitation.
Consider ReloadableResourceBundleMessageSource
for an alternative
that is capable of refreshing the underlying bundle files.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.context.support.MessageSourceSupport
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Set a single basename, following
ResourceBundle conventions:
essentially, a fully-qualified classpath location. | |||||||||||
Set an array of basenames, each following
ResourceBundle
conventions: essentially, a fully-qualified classpath location. | |||||||||||
Callback that supplies the bean
class loader to
a bean instance. | |||||||||||
Set the ClassLoader to load resource bundles with.
| |||||||||||
Show the configuration of this MessageSource.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Obtain the resource bundle for the given basename and Locale.
| |||||||||||
Return the ClassLoader to load resource bundles with.
| |||||||||||
Return a MessageFormat for the given bundle and code,
fetching already generated MessageFormats from the cache.
| |||||||||||
Return a ResourceBundle for the given basename and code,
fetching already generated MessageFormats from the cache.
| |||||||||||
Resolves the given message code as key in the registered resource bundles,
using a cached MessageFormat instance per message code.
| |||||||||||
Resolves the given message code as key in the registered resource bundles,
returning the value found in the bundle as-is (without MessageFormat parsing).
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.context.support.AbstractMessageSource
| |||||||||||
From class
org.springframework.context.support.MessageSourceSupport
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.beans.factory.BeanClassLoaderAware
| |||||||||||
From interface
org.springframework.context.HierarchicalMessageSource
| |||||||||||
From interface
org.springframework.context.MessageSource
|
Set a single basename, following ResourceBundle
conventions:
essentially, a fully-qualified classpath location. If it doesn't contain a
package qualifier (such as org.mypackage
), it will be resolved
from the classpath root.
Messages will normally be held in the "/lib" or "/classes" directory of a web application's WAR structure. They can also be held in jar files on the class path.
Note that ResourceBundle names are effectively classpath locations: As a
consequence, the JDK's standard ResourceBundle treats dots as package separators.
This means that "test.theme" is effectively equivalent to "test/theme",
just like it is for programmatic java.util.ResourceBundle
usage.
Set an array of basenames, each following ResourceBundle
conventions: essentially, a fully-qualified classpath location. If it
doesn't contain a package qualifier (such as org.mypackage
),
it will be resolved from the classpath root.
The associated resource bundles will be checked sequentially when resolving a message code. Note that message definitions in a previous resource bundle will override ones in a later bundle, due to the sequential lookup.
Note that ResourceBundle names are effectively classpath locations: As a
consequence, the JDK's standard ResourceBundle treats dots as package separators.
This means that "test.theme" is effectively equivalent to "test/theme",
just like it is for programmatic java.util.ResourceBundle
usage.
Callback that supplies the bean class loader
to
a bean instance.
Invoked after the population of normal bean properties but
before an initialization callback such as
InitializingBean's
afterPropertiesSet()
method or a custom init-method.
classLoader | the owning class loader; may be null in
which case a default ClassLoader must be used, for example
the ClassLoader obtained via
getDefaultClassLoader()
|
---|
Set the ClassLoader to load resource bundles with.
Default is the containing BeanFactory's
bean ClassLoader
,
or the default ClassLoader determined by
getDefaultClassLoader()
if not running within a BeanFactory.
Obtain the resource bundle for the given basename and Locale.
basename | the basename to look for |
---|---|
locale | the Locale to look for |
MissingResourceException | if no matching bundle could be found |
---|
Return the ClassLoader to load resource bundles with.
Default is the containing BeanFactory's bean ClassLoader.
Return a MessageFormat for the given bundle and code, fetching already generated MessageFormats from the cache.
bundle | the ResourceBundle to work on |
---|---|
code | the message code to retrieve |
locale | the Locale to use to build the MessageFormat |
null
if no message
defined for the given codeMissingResourceException | if thrown by the ResourceBundle |
---|
Return a ResourceBundle for the given basename and code, fetching already generated MessageFormats from the cache.
basename | the basename of the ResourceBundle |
---|---|
locale | the Locale to find the ResourceBundle for |
null
if none
found for the given basename and Locale
Resolves the given message code as key in the registered resource bundles, using a cached MessageFormat instance per message code.
code | the code of the message to resolve |
---|---|
locale | the Locale to resolve the code for (subclasses are encouraged to support internationalization) |
null
if not foundResolves the given message code as key in the registered resource bundles, returning the value found in the bundle as-is (without MessageFormat parsing).
code | the code of the message to resolve |
---|---|
locale | the Locale to resolve the code for (subclasses are encouraged to support internationalization) |
null
if not found