Package org.springframework.context.annotation

# Class ScannedGenericBeanDefinition

java.lang.Object
org.springframework.core.AttributeAccessorSupport
org.springframework.beans.BeanMetadataAttributeAccessor
org.springframework.beans.factory.support.AbstractBeanDefinition
org.springframework.beans.factory.support.GenericBeanDefinition
org.springframework.context.annotation.ScannedGenericBeanDefinition

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `org.springframework.beans.BeanMetadataElement`, `org.springframework.beans.factory.annotation.AnnotatedBeanDefinition`, `org.springframework.beans.factory.config.BeanDefinition`, `org.springframework.core.AttributeAccessor`

public class ScannedGenericBeanDefinition extends org.springframework.beans.factory.support.GenericBeanDefinition implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition
Extension of the `GenericBeanDefinition` class, based on an ASM ClassReader, with support for annotation metadata exposed through the `AnnotatedBeanDefinition` interface.

This class does not load the bean `Class` early. It rather retrieves all relevant metadata from the ".class" file itself, parsed with the ASM ClassReader. It is functionally equivalent to `AnnotatedGenericBeanDefinition(AnnotationMetadata)` but distinguishes by type beans that have been scanned vs those that have been otherwise registered or detected by other means.

Since:
  2.5
Author:
  Juergen Hoeller, Chris Beams
See Also:
  - `getMetadata()`
  - `AbstractBeanDefinition.getBeanClassName()`
  - `MetadataReaderFactory`
  - `AnnotatedGenericBeanDefinition`
  - Serialized Form

## Field Summary

### Fields inherited from class org.springframework.beans.factory.support.AbstractBeanDefinition

`AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO, DEPENDENCY_CHECK_ALL, DEPENDENCY_CHECK_NONE, DEPENDENCY_CHECK_OBJECTS, DEPENDENCY_CHECK_SIMPLE, INFER_METHOD, ORDER_ATTRIBUTE, PREFERRED_CONSTRUCTORS_ATTRIBUTE, SCOPE_DEFAULT`

### Fields inherited from interface org.springframework.beans.factory.config.BeanDefinition

`ROLE_APPLICATION, ROLE_INFRASTRUCTURE, ROLE_SUPPORT, SCOPE_PROTOTYPE, SCOPE_SINGLETON`

## Constructor Summary

Constructors
Constructor
Description
`ScannedGenericBeanDefinition(org.springframework.core.type.classreading.MetadataReader metadataReader)`
Create a new ScannedGenericBeanDefinition for the class that the given MetadataReader describes.

## Method Summary

Modifier and Type
Method
Description
`org.springframework.core.type.MethodMetadata`
`getFactoryMethodMetadata()`
`final org.springframework.core.type.AnnotationMetadata`
`getMetadata()`

### Methods inherited from class org.springframework.beans.factory.support.GenericBeanDefinition

`cloneBeanDefinition, equals, getParentName, setParentName, toString`

### Methods inherited from class org.springframework.beans.factory.support.AbstractBeanDefinition

`addQualifier, applyDefaults, clone, copyQualifiersFrom, getAutowireMode, getBeanClass, getBeanClassName, getConstructorArgumentValues, getDependencyCheck, getDependsOn, getDescription, getDestroyMethodName, getDestroyMethodNames, getFactoryBeanName, getFactoryMethodName, getInitMethodName, getInitMethodNames, getInstanceSupplier, getLazyInit, getMethodOverrides, getOriginatingBeanDefinition, getPropertyValues, getQualifier, getQualifiers, getResolvableType, getResolvedAutowireMode, getResource, getResourceDescription, getRole, getScope, hasBeanClass, hasConstructorArgumentValues, hashCode, hasMethodOverrides, hasPropertyValues, hasQualifier, isAbstract, isAutowireCandidate, isBackgroundInit, isDefaultCandidate, isEnforceDestroyMethod, isEnforceInitMethod, isFallback, isLazyInit, isLenientConstructorResolution, isNonPublicAccessAllowed, isPrimary, isPrototype, isSingleton, isSynthetic, overrideFrom, prepareMethodOverride, prepareMethodOverrides, resolveBeanClass, setAbstract, setAutowireCandidate, setAutowireMode, setBackgroundInit, setBeanClass, setBeanClassName, setConstructorArgumentValues, setDefaultCandidate, setDependencyCheck, setDependsOn, setDescription, setDestroyMethodName, setDestroyMethodNames, setEnforceDestroyMethod, setEnforceInitMethod, setFactoryBeanName, setFactoryMethodName, setFallback, setInitMethodName, setInitMethodNames, setInstanceSupplier, setLazyInit, setLenientConstructorResolution, setMethodOverrides, setNonPublicAccessAllowed, setOriginatingBeanDefinition, setPrimary, setPropertyValues, setResource, setResourceDescription, setRole, setScope, setSynthetic, validate`

### Methods inherited from class org.springframework.beans.BeanMetadataAttributeAccessor

`addMetadataAttribute, getAttribute, getMetadataAttribute, getSource, removeAttribute, setAttribute, setSource`

### Methods inherited from class org.springframework.core.AttributeAccessorSupport

`attributeNames, computeAttribute, copyAttributesFrom, hasAttribute`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.core.AttributeAccessor

`attributeNames, computeAttribute, getAttribute, hasAttribute, removeAttribute, setAttribute`

### Methods inherited from interface org.springframework.beans.factory.config.BeanDefinition

`getBeanClassName, getConstructorArgumentValues, getDependsOn, getDescription, getDestroyMethodName, getFactoryBeanName, getFactoryMethodName, getInitMethodName, getOriginatingBeanDefinition, getParentName, getPropertyValues, getResolvableType, getResourceDescription, getRole, getScope, hasConstructorArgumentValues, hasPropertyValues, isAbstract, isAutowireCandidate, isFallback, isLazyInit, isPrimary, isPrototype, isSingleton, setAutowireCandidate, setBeanClassName, setDependsOn, setDescription, setDestroyMethodName, setFactoryBeanName, setFactoryMethodName, setFallback, setInitMethodName, setLazyInit, setParentName, setPrimary, setRole, setScope`

### Methods inherited from interface org.springframework.beans.BeanMetadataElement

`getSource`

## Constructor Details

### ScannedGenericBeanDefinition

public ScannedGenericBeanDefinition(org.springframework.core.type.classreading.MetadataReader metadataReader)
Create a new ScannedGenericBeanDefinition for the class that the given MetadataReader describes.

Parameters:
  `metadataReader` - the MetadataReader for the scanned target class

## Method Details

### getMetadata

public final org.springframework.core.type.AnnotationMetadata getMetadata()

Specified by:
  `getMetadata` in interface `org.springframework.beans.factory.annotation.AnnotatedBeanDefinition`

### getFactoryMethodMetadata

@Nullable public org.springframework.core.type.MethodMetadata getFactoryMethodMetadata()

Specified by:
  `getFactoryMethodMetadata` in interface `org.springframework.beans.factory.annotation.AnnotatedBeanDefinition`