Class CachingMetadataReaderFactory
java.lang.Object
org.springframework.core.type.classreading.SimpleMetadataReaderFactory
org.springframework.core.type.classreading.CachingMetadataReaderFactory
- All Implemented Interfaces:
MetadataReaderFactory
Caching implementation of the
MetadataReaderFactory interface,
caching a MetadataReader instance per Spring Resource handle
(i.e. per ".class" file).- Since:
- 2.5
- Author:
- Juergen Hoeller, Costin Leau
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault maximum number of entries for a local MetadataReader cache: 256. -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new CachingMetadataReaderFactory for the default class loader, using a local resource cache.CachingMetadataReaderFactory(ClassLoader classLoader) Create a new CachingMetadataReaderFactory for the givenClassLoader, using a local resource cache.CachingMetadataReaderFactory(ResourceLoader resourceLoader) Create a new CachingMetadataReaderFactory for the givenResourceLoader, using a shared resource cache if supported or a local resource cache otherwise. -
Method Summary
Modifier and TypeMethodDescriptionvoidClear the local MetadataReader cache, if any, removing all cached class metadata.intReturn the maximum number of entries for the MetadataReader cache.getMetadataReader(Resource resource) Obtain a MetadataReader for the given resource.voidsetCacheLimit(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 Details
-
DEFAULT_CACHE_LIMIT
public static final int DEFAULT_CACHE_LIMITDefault maximum number of entries for a local MetadataReader cache: 256.- See Also:
-
-
Constructor Details
-
CachingMetadataReaderFactory
public CachingMetadataReaderFactory()Create a new CachingMetadataReaderFactory for the default class loader, using a local resource cache. -
CachingMetadataReaderFactory
Create a new CachingMetadataReaderFactory for the givenClassLoader, using a local resource cache.- Parameters:
classLoader- the ClassLoader to use
-
CachingMetadataReaderFactory
Create a new CachingMetadataReaderFactory for the givenResourceLoader, using a shared resource cache if supported or a local resource cache otherwise.- Parameters:
resourceLoader- the Spring ResourceLoader to use (also determines the ClassLoader to use)- See Also:
-
-
Method Details
-
setCacheLimit
public void setCacheLimit(int cacheLimit) Specify the maximum number of entries for the MetadataReader cache.Default is 256 for a local cache, whereas a shared cache is typically unbounded. This method enforces a local resource cache, even if the
ResourceLoadersupports a shared resource cache. -
getCacheLimit
public int getCacheLimit()Return the maximum number of entries for the MetadataReader cache. -
getMetadataReader
Description copied from interface:MetadataReaderFactoryObtain a MetadataReader for the given resource.- Specified by:
getMetadataReaderin interfaceMetadataReaderFactory- Overrides:
getMetadataReaderin 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 local MetadataReader cache, if any, removing all cached class metadata.
-