Interface MessageSource

All Known Subinterfaces:
ApplicationContext, ConfigurableApplicationContext, ConfigurableWebApplicationContext, HierarchicalMessageSource, WebApplicationContext
All Known Implementing Classes:
AbstractApplicationContext, AbstractMessageSource, AbstractRefreshableApplicationContext, AbstractRefreshableConfigApplicationContext, AbstractRefreshableWebApplicationContext, AbstractResourceBasedMessageSource, AbstractXmlApplicationContext, AnnotationConfigApplicationContext, AnnotationConfigWebApplicationContext, ClassPathXmlApplicationContext, DelegatingMessageSource, FileSystemXmlApplicationContext, GenericApplicationContext, GenericGroovyApplicationContext, GenericWebApplicationContext, GenericXmlApplicationContext, GroovyWebApplicationContext, ReloadableResourceBundleMessageSource, ResourceBundleMessageSource, StaticApplicationContext, StaticMessageSource, StaticWebApplicationContext, XmlWebApplicationContext

public interface MessageSource
Strategy interface for resolving messages, with support for the parameterization and internationalization of such messages.

Spring provides two out-of-the-box implementations for production:

Author:
Rod Johnson, Juergen Hoeller
See Also:
  • Method Details

    • getMessage

      @Nullable String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale)
      Try to resolve the message. Return default message if no message was found.
      Parameters:
      code - the message code to look up, e.g. 'calculator.noRateSet'. MessageSource users are encouraged to base message names on qualified class or package names, avoiding potential conflicts and ensuring maximum clarity.
      args - an array of arguments that will be filled in for params within the message (params look like "{0}", "{1,date}", "{2,time}" within a message), or null if none
      defaultMessage - a default message to return if the lookup fails
      locale - the locale in which to do the lookup
      Returns:
      the resolved message if the lookup was successful, otherwise the default message passed as a parameter (which may be null)
      See Also:
    • getMessage

      String getMessage(String code, @Nullable Object[] args, Locale locale) throws NoSuchMessageException
      Try to resolve the message. Treat as an error if the message can't be found.
      Parameters:
      code - the message code to look up, e.g. 'calculator.noRateSet'. MessageSource users are encouraged to base message names on qualified class or package names, avoiding potential conflicts and ensuring maximum clarity.
      args - an array of arguments that will be filled in for params within the message (params look like "{0}", "{1,date}", "{2,time}" within a message), or null if none
      locale - the locale in which to do the lookup
      Returns:
      the resolved message (never null)
      Throws:
      NoSuchMessageException - if no corresponding message was found
      See Also:
    • getMessage

      String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException
      Try to resolve the message using all the attributes contained within the MessageSourceResolvable argument that was passed in.

      NOTE: We must throw a NoSuchMessageException on this method since at the time of calling this method we aren't able to determine if the defaultMessage property of the resolvable is null or not.

      Parameters:
      resolvable - the value object storing attributes required to resolve a message (may include a default message)
      locale - the locale in which to do the lookup
      Returns:
      the resolved message (never null since even a MessageSourceResolvable-provided default message needs to be non-null)
      Throws:
      NoSuchMessageException - if no corresponding message was found (and no default message was provided by the MessageSourceResolvable)
      See Also: