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, Object @Nullable [] 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, for example, '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, Object @Nullable [] 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, for example, '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: