@Target(value=TYPE) @Retention(value=RUNTIME) @Documented public @interface MessageBundle
This annotation must only be used on interfaces. If this annotation gets used on a concrete class, a deployment error results!
Each method on an interface annotated with @MessageBundle
will form a type-safe message. The
message lookup key (resource bundle key) can either be defined by annotating those methods with
@MessageTemplate
) or by convention. if no @MessageTemplate
annotation is used on a method,
the case sensitive method name name will be used as resource key.
The parameters of the declared methods will be automatically passed as message parameters to the
MessageResolver
. Please note that all passed parameters should be
Serializable
. If a parameter is not Serializable, we will instead store the toString()
of the passed parameter.
The ResourceBundle
or other resource lookup source which might be used is determined by the
MessageResolver
in conjunction with
MessageContext.messageSource(String...)
. The fully qualified class
name of the interface annotated with @MessageBundle will automatically be registered as additional
messageSource
for those messages.
@MessageBundle
can be combined with MessageContextConfig
to further customize the
message resolution and processing.
Debug hint: Set a breakpoint in MessageBundleInvocationHandler#invoke
. This will get called for every
message bundle invocation.
Copyright © 2015 The Apache Software Foundation. All rights reserved.