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
-
Constructor Summary
ConstructorDescriptionShadowingClassLoader
(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 TypeMethodDescriptionvoid
addTransformer
(ClassFileTransformer transformer) Add the given ClassFileTransformer to the list of transformers that this ClassLoader will apply.void
Copy 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 boolean
isEligibleForShadowing
(String className) Determine whether the specified class is eligible for shadowing by this class loader.Class<?>
Methods inherited from class org.springframework.core.DecoratingClassLoader
excludeClass, excludePackage, isExcluded
Methods inherited from class java.lang.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:
loadClass
in 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:
getResource
in classClassLoader
-
getResourceAsStream
- Overrides:
getResourceAsStream
in classClassLoader
-
getResources
- Overrides:
getResources
in classClassLoader
- Throws:
IOException
-