Class InjectionPoint
- java.lang.Object
- org.springframework.beans.factory.InjectionPoint
- Direct Known Subclasses:
DependencyDescriptor
public class InjectionPoint extends Object
A simple descriptor for an injection point, pointing to a method/constructor parameter or a field. Exposed byUnsatisfiedDependencyException
. Also available as an argument for factory methods, reacting to the requesting injection point for building a customized bean instance.- Since:
- 4.3
- Author:
- Juergen Hoeller
- See Also:
UnsatisfiedDependencyException.getInjectionPoint()
,DependencyDescriptor
Field Summary
Fields Modifier and Type Field Description protected Field
field
protected MethodParameter
methodParameter
Constructor Summary
Constructors Modifier Constructor Description protected
InjectionPoint()
Just available for serialization purposes in subclasses.InjectionPoint(Field field)
Create an injection point descriptor for a field.protected
InjectionPoint(InjectionPoint original)
Copy constructor.InjectionPoint(MethodParameter methodParameter)
Create an injection point descriptor for a method or constructor parameter.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
AnnotatedElement
getAnnotatedElement()
Return the wrapped annotated element.<A extends Annotation>
AgetAnnotation(Class<A> annotationType)
Retrieve a field/parameter annotation of the given type, if any.Annotation[]
getAnnotations()
Obtain the annotations associated with the wrapped field or method/constructor parameter.Class<?>
getDeclaredType()
Return the type declared by the underlying field or method/constructor parameter, indicating the injection type.Field
getField()
Return the wrapped Field, if any.Member
getMember()
Returns the wrapped member, containing the injection point.MethodParameter
getMethodParameter()
Return the wrapped MethodParameter, if any.int
hashCode()
protected MethodParameter
obtainMethodParameter()
Return the wrapped MethodParameter, assuming it is present.String
toString()
Field Detail
methodParameter
@Nullable protected MethodParameter methodParameter
Constructor Detail
InjectionPoint
public InjectionPoint(MethodParameter methodParameter)
Create an injection point descriptor for a method or constructor parameter.- Parameters:
methodParameter
- the MethodParameter to wrap
InjectionPoint
public InjectionPoint(Field field)
Create an injection point descriptor for a field.- Parameters:
field
- the field to wrap
InjectionPoint
protected InjectionPoint(InjectionPoint original)
Copy constructor.- Parameters:
original
- the original descriptor to create a copy from
InjectionPoint
protected InjectionPoint()
Just available for serialization purposes in subclasses.
Method Detail
getMethodParameter
@Nullable public MethodParameter getMethodParameter()
Return the wrapped MethodParameter, if any.Note: Either MethodParameter or Field is available.
- Returns:
- the MethodParameter, or
null
if none
getField
@Nullable public Field getField()
Return the wrapped Field, if any.Note: Either MethodParameter or Field is available.
- Returns:
- the Field, or
null
if none
obtainMethodParameter
protected final MethodParameter obtainMethodParameter()
Return the wrapped MethodParameter, assuming it is present.- Returns:
- the MethodParameter (never
null
) - Throws:
IllegalStateException
- if no MethodParameter is available- Since:
- 5.0
getAnnotations
public Annotation[] getAnnotations()
Obtain the annotations associated with the wrapped field or method/constructor parameter.
getAnnotation
@Nullable public <A extends Annotation> A getAnnotation(Class<A> annotationType)
Retrieve a field/parameter annotation of the given type, if any.- Parameters:
annotationType
- the annotation type to retrieve- Returns:
- the annotation instance, or
null
if none found - Since:
- 4.3.9
getDeclaredType
public Class<?> getDeclaredType()
Return the type declared by the underlying field or method/constructor parameter, indicating the injection type.
getMember
public Member getMember()
Returns the wrapped member, containing the injection point.- Returns:
- the Field / Method / Constructor as Member
getAnnotatedElement
public AnnotatedElement getAnnotatedElement()
Return the wrapped annotated element.Note: In case of a method/constructor parameter, this exposes the annotations declared on the method or constructor itself (i.e. at the method/constructor level, not at the parameter level). Use
getAnnotations()
to obtain parameter-level annotations in such a scenario, transparently with corresponding field annotations.- Returns:
- the Field / Method / Constructor as AnnotatedElement