Class CachingMetadataReaderFactory
- java.lang.Object
- org.springframework.core.type.classreading.SimpleMetadataReaderFactory
- org.springframework.core.type.classreading.CachingMetadataReaderFactory
- All Implemented Interfaces:
MetadataReaderFactory
public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory
Caching implementation of theMetadataReaderFactory
interface, caching aMetadataReader
instance per SpringResource
handle (i.e. per ".class" file).- Since:
- 2.5
- Author:
- Juergen Hoeller, Costin Leau
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CACHE_LIMIT
Default maximum number of entries for the MetadataReader cache: 256
Constructor Summary
Constructors Constructor Description CachingMetadataReaderFactory()
Create a new CachingMetadataReaderFactory for the default class loader.CachingMetadataReaderFactory(ClassLoader classLoader)
Create a new CachingMetadataReaderFactory for the given class loader.CachingMetadataReaderFactory(ResourceLoader resourceLoader)
Create a new CachingMetadataReaderFactory for the given resource loader.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearCache()
Clear the entire MetadataReader cache, removing all cached class metadata.int
getCacheLimit()
Return the maximum number of entries for the MetadataReader cache.MetadataReader
getMetadataReader(Resource resource)
Obtain a MetadataReader for the given resource.void
setCacheLimit(int cacheLimit)
Specify the maximum number of entries for the MetadataReader cache.Methods inherited from class org.springframework.core.type.classreading.SimpleMetadataReaderFactory
getMetadataReader, getResourceLoader
Field Detail
DEFAULT_CACHE_LIMIT
public static final int DEFAULT_CACHE_LIMIT
Default maximum number of entries for the MetadataReader cache: 256- See Also:
- Constant Field Values
Constructor Detail
CachingMetadataReaderFactory
public CachingMetadataReaderFactory()
Create a new CachingMetadataReaderFactory for the default class loader.
CachingMetadataReaderFactory
public CachingMetadataReaderFactory(ResourceLoader resourceLoader)
Create a new CachingMetadataReaderFactory for the given resource loader.- Parameters:
resourceLoader
- the Spring ResourceLoader to use (also determines the ClassLoader to use)
CachingMetadataReaderFactory
public CachingMetadataReaderFactory(ClassLoader classLoader)
Create a new CachingMetadataReaderFactory for the given class loader.- Parameters:
classLoader
- the ClassLoader to use
Method Detail
setCacheLimit
public void setCacheLimit(int cacheLimit)
Specify the maximum number of entries for the MetadataReader cache.Default is 256.
getCacheLimit
public int getCacheLimit()
Return the maximum number of entries for the MetadataReader cache.
getMetadataReader
public MetadataReader getMetadataReader(Resource resource) throws IOException
Description copied from interface:MetadataReaderFactory
Obtain a MetadataReader for the given resource.- Specified by:
getMetadataReader
in interfaceMetadataReaderFactory
- Overrides:
getMetadataReader
in classSimpleMetadataReaderFactory
- Parameters:
resource
- the resource (pointing to a ".class" file)- Returns:
- a holder for the ClassReader instance (never
null
) - Throws:
IOException
- in case of I/O failure
clearCache
public void clearCache()
Clear the entire MetadataReader cache, removing all cached class metadata.