Package org.springframework.beans.factory.annotation

# Annotation Interface Value

@Target({FIELD,METHOD,PARAMETER,ANNOTATION_TYPE}) @Retention(RUNTIME) @Documented public @interface Value
Annotation used at the field or method/constructor parameter level that indicates a default value expression for the annotated element.

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).

Since:
  3.0
Author:
  Juergen Hoeller
See Also:
  - `AutowiredAnnotationBeanPostProcessor`
  - `Autowired`
  - `BeanExpressionResolver`
  - `AutowireCandidateResolver.getSuggestedValue(org.springframework.beans.factory.config.DependencyDescriptor)`

## Required Element Summary

Required Elements
Modifier and Type
Required Element
Description
`String`
`value`
The actual value expression such as `#{systemProperties.myProp}` or property placeholder such as `${my.app.myProp}`.

## Element Details

### value

String value
The actual value expression such as `#{systemProperties.myProp}` or property placeholder such as `${my.app.myProp}`.