Class ShadowingClassLoader
java.lang.Object
java.lang.ClassLoader
org.springframework.core.DecoratingClassLoader
org.springframework.instrument.classloading.ShadowingClassLoader
- Direct Known Subclasses:
ResourceOverridingShadowingClassLoader
ClassLoader decorator that shadows an enclosing ClassLoader,
applying registered transformers to all affected classes.
- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller, Costin Leau
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionShadowingClassLoader(ClassLoader enclosingClassLoader) Create a new ShadowingClassLoader, decorating the given ClassLoader, applyingDEFAULT_EXCLUDED_PACKAGES.ShadowingClassLoader(ClassLoader enclosingClassLoader, boolean defaultExcludes) Create a new ShadowingClassLoader, decorating the given ClassLoader. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransformer(ClassFileTransformer transformer) Add the given ClassFileTransformer to the list of transformers that this ClassLoader will apply.voidCopy all ClassFileTransformers from the given ClassLoader to the list of transformers that this ClassLoader will apply.getResource(String name) getResourceAsStream(String name) getResources(String name) protected booleanisEligibleForShadowing(String className) Determine whether the specified class is eligible for shadowing by this class loader.Class<?> Methods inherited from class DecoratingClassLoader
excludeClass, excludePackage, isExcludedMethods inherited from class ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Field Details
-
DEFAULT_EXCLUDED_PACKAGES
Packages that are excluded by default.
-
-
Constructor Details
-
ShadowingClassLoader
Create a new ShadowingClassLoader, decorating the given ClassLoader, applyingDEFAULT_EXCLUDED_PACKAGES.- Parameters:
enclosingClassLoader- the ClassLoader to decorate- See Also:
-
ShadowingClassLoader
Create a new ShadowingClassLoader, decorating the given ClassLoader.- Parameters:
enclosingClassLoader- the ClassLoader to decoratedefaultExcludes- whether to applyDEFAULT_EXCLUDED_PACKAGES- Since:
- 4.3.8
-
-
Method Details
-
addTransformer
Add the given ClassFileTransformer to the list of transformers that this ClassLoader will apply.- Parameters:
transformer- the ClassFileTransformer
-
copyTransformers
Copy all ClassFileTransformers from the given ClassLoader to the list of transformers that this ClassLoader will apply.- Parameters:
other- the ClassLoader to copy from
-
loadClass
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
isEligibleForShadowing
Determine whether the specified class is eligible for shadowing by this class loader.- Parameters:
className- the class name to check- Returns:
- whether the specified class is eligible
- See Also:
-
getResource
- Overrides:
getResourcein classClassLoader
-
getResourceAsStream
- Overrides:
getResourceAsStreamin classClassLoader
-
getResources
- Overrides:
getResourcesin classClassLoader- Throws:
IOException
-