org.springframework.core

## Class DecoratingClassLoader

- java.lang.Object
- - java.lang.ClassLoader
  - - org.springframework.core.DecoratingClassLoader

Direct Known Subclasses:
  OverridingClassLoader, ShadowingClassLoader

    public abstract class DecoratingClassLoader
    extends ClassLoader

Base class for decorating ClassLoaders such as `OverridingClassLoader` and `ShadowingClassLoader`, providing common handling of excluded packages and classes.

Since:
  2.5.2
Author:
  Juergen Hoeller, Rod Johnson

### Constructor Summary

Constructors
Constructor and Description
`DecoratingClassLoader()` Create a new DecoratingClassLoader with no parent ClassLoader.
`DecoratingClassLoader(ClassLoader parent)` Create a new DecoratingClassLoader using the given parent ClassLoader for delegation.

### Method Summary

Methods
`void` `excludeClass(String className)` Add a class name to exclude from decoration (e.g.
`void` `excludePackage(String packageName)` Add a package name to exclude from decoration (e.g.
`protected boolean` `isExcluded(String className)` Determine whether the specified class is excluded from decoration by this class loader.

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

`clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DecoratingClassLoader

    public DecoratingClassLoader()

Create a new DecoratingClassLoader with no parent ClassLoader.

#### DecoratingClassLoader

    public DecoratingClassLoader(ClassLoader parent)

Create a new DecoratingClassLoader using the given parent ClassLoader for delegation.

### Method Detail

#### excludePackage

    public void excludePackage(String packageName)

Add a package name to exclude from decoration (e.g. overriding).

Any class whose fully-qualified name starts with the name registered here will be handled by the parent ClassLoader in the usual fashion.

Parameters:
  `packageName` - the package name to exclude

#### excludeClass

    public void excludeClass(String className)

Add a class name to exclude from decoration (e.g. overriding).

Any class name registered here will be handled by the parent ClassLoader in the usual fashion.

Parameters:
  `className` - the class name to exclude

#### isExcluded

    protected boolean isExcluded(String className)

Determine whether the specified class is excluded from decoration by this class loader.

The default implementation checks against excluded packages and classes.

Parameters:
  `className` - the class name to check
Returns:
  whether the specified class is eligible
See Also:
  `excludePackage(java.lang.String)`, `excludeClass(java.lang.String)`