@Target(value={FIELD,METHOD,PARAMETER,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented public @interface Value
Typically used for expression-driven or property-driven dependency injection. Also supported for dynamic resolution of handler method arguments — for example, in Spring MVC.
A common use case is to inject values using
#{systemProperties.myProp}
style SpEL (Spring Expression Language)
expressions. Alternatively, values may be injected using
${my.app.myProp}
style property placeholders.
Note that actual processing of the @Value
annotation is performed
by a BeanPostProcessor
which in turn means that you cannot use
@Value
within
BeanPostProcessor
or
BeanFactoryPostProcessor
types. Please consult the javadoc for the AutowiredAnnotationBeanPostProcessor
class (which, by default, checks for the presence of this annotation).
AutowiredAnnotationBeanPostProcessor
,
Autowired
,
BeanExpressionResolver
,
AutowireCandidateResolver.getSuggestedValue(org.springframework.beans.factory.config.DependencyDescriptor)
public abstract String value
#{systemProperties.myProp}
or property placeholder such as ${my.app.myProp}
.