public class JsrAutowiredAnnotationBeanPostProcessor
extends org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter
This class overrides methods in the copied SpringAutowiredAnnotationBeanPostProcessor
class
to check for the BatchProperty
annotation before processing injection annotations. If the annotation
is found, further injection processing for the field is skipped.
Modifier and Type | Field and Description |
---|---|
protected org.apache.commons.logging.Log |
logger |
Constructor and Description |
---|
JsrAutowiredAnnotationBeanPostProcessor() |
Modifier and Type | Method and Description |
---|---|
protected org.springframework.beans.factory.annotation.InjectionMetadata |
buildAutowiringMetadata(java.lang.Class<?> clazz) |
java.lang.reflect.Constructor<?>[] |
determineCandidateConstructors(java.lang.Class<?> beanClass,
java.lang.String beanName) |
protected boolean |
determineRequiredStatus(java.lang.annotation.Annotation annotation)
Determine if the annotated field or method requires its dependency.
|
protected <T> java.util.Map<java.lang.String,T> |
findAutowireCandidates(java.lang.Class<T> type)
Obtain all beans of the given type as autowire candidates.
|
protected java.lang.annotation.Annotation |
findAutowiredAnnotation(java.lang.reflect.AccessibleObject ao) |
protected org.springframework.beans.factory.annotation.InjectionMetadata |
findAutowiringMetadata(java.lang.Class<?> clazz) |
int |
getOrder() |
void |
postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition,
java.lang.Class<?> beanType,
java.lang.String beanName) |
org.springframework.beans.PropertyValues |
postProcessPropertyValues(org.springframework.beans.PropertyValues pvs,
java.beans.PropertyDescriptor[] pds,
java.lang.Object bean,
java.lang.String beanName) |
void |
processInjection(java.lang.Object bean)
'Native' processing method for direct calls with an arbitrary target instance,
resolving all of its fields and methods which are annotated with
@Autowired . |
void |
setAutowiredAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> autowiredAnnotationType)
Set the 'autowired' annotation type, to be used on constructors, fields,
setter methods and arbitrary config methods.
|
void |
setAutowiredAnnotationTypes(java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> autowiredAnnotationTypes)
Set the 'autowired' annotation types, to be used on constructors, fields,
setter methods and arbitrary config methods.
|
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) |
void |
setOrder(int order) |
void |
setRequiredParameterName(java.lang.String requiredParameterName)
Set the name of a parameter of the annotation that specifies
whether it is required.
|
void |
setRequiredParameterValue(boolean requiredParameterValue)
Set the boolean value that marks a dependency as required
|
getEarlyBeanReference, postProcessAfterInitialization, postProcessAfterInstantiation, postProcessBeforeInitialization, postProcessBeforeInstantiation, postProcessProperties, predictBeanType
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public JsrAutowiredAnnotationBeanPostProcessor()
protected org.springframework.beans.factory.annotation.InjectionMetadata findAutowiringMetadata(java.lang.Class<?> clazz)
protected java.lang.annotation.Annotation findAutowiredAnnotation(java.lang.reflect.AccessibleObject ao)
public void setAutowiredAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> autowiredAnnotationType)
The default autowired annotation type is the Spring-provided
Autowired
annotation, as well as Value
.
This setter property exists so that developers can provide their own (non-Spring-specific) annotation type to indicate that a member is supposed to be autowired.
autowiredAnnotationType
- type to be used by constructors, fields and methods.public void setAutowiredAnnotationTypes(java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> autowiredAnnotationTypes)
The default autowired annotation type is the Spring-provided
Autowired
annotation, as well as Value
.
This setter property exists so that developers can provide their own (non-Spring-specific) annotation types to indicate that a member is supposed to be autowired.
autowiredAnnotationTypes
- set of types to be used by constructors, fields and methods.public void setRequiredParameterName(java.lang.String requiredParameterName)
requiredParameterName
- the name of the parameter.setRequiredParameterValue(boolean)
public void setRequiredParameterValue(boolean requiredParameterValue)
For example if using 'required=true' (the default),
this value should be true
; but if using
'optional=false', this value should be false
.
requiredParameterValue
- true if dependency is required.setRequiredParameterName(String)
public void setOrder(int order)
public int getOrder()
getOrder
in interface org.springframework.core.Ordered
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
org.springframework.beans.BeansException
public void postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition, java.lang.Class<?> beanType, java.lang.String beanName)
postProcessMergedBeanDefinition
in interface org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor
public java.lang.reflect.Constructor<?>[] determineCandidateConstructors(java.lang.Class<?> beanClass, java.lang.String beanName) throws org.springframework.beans.BeansException
determineCandidateConstructors
in interface org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor
determineCandidateConstructors
in class org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter
org.springframework.beans.BeansException
public org.springframework.beans.PropertyValues postProcessPropertyValues(org.springframework.beans.PropertyValues pvs, java.beans.PropertyDescriptor[] pds, java.lang.Object bean, java.lang.String beanName) throws org.springframework.beans.BeansException
postProcessPropertyValues
in interface org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor
postProcessPropertyValues
in class org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorAdapter
org.springframework.beans.BeansException
public void processInjection(java.lang.Object bean) throws org.springframework.beans.BeansException
@Autowired
.bean
- the target instance to processorg.springframework.beans.BeansException
- if autowiring failedprotected org.springframework.beans.factory.annotation.InjectionMetadata buildAutowiringMetadata(java.lang.Class<?> clazz)
protected <T> java.util.Map<java.lang.String,T> findAutowireCandidates(java.lang.Class<T> type) throws org.springframework.beans.BeansException
T
- the type of the bean.type
- the type of the bean.org.springframework.beans.BeansException
- if bean retrieval failedprotected boolean determineRequiredStatus(java.lang.annotation.Annotation annotation)
A 'required' dependency means that autowiring should fail when no beans are found. Otherwise, the autowiring process will simply bypass the field or method when no beans are found.
annotation
- the Autowired annotation