Class SpringNamingPolicy

java.lang.Object
org.springframework.cglib.core.SpringNamingPolicy
All Implemented Interfaces:
NamingPolicy

public final class SpringNamingPolicy extends Object implements NamingPolicy
Custom variant of CGLIB's DefaultNamingPolicy, modifying the tag in generated class names from "EnhancerByCGLIB" etc to a "SpringCGLIB" tag and using a plain counter suffix instead of a hash code suffix (as of 6.0).

This allows for reliably discovering pre-generated Spring proxy classes in the classpath.

Since:
3.2.8 / 6.0
Author:
Juergen Hoeller, Sam Brannen
  • Field Details

  • Method Details

    • getClassName

      public String getClassName(String prefix, String source, Object key, Predicate names)
      Description copied from interface: NamingPolicy
      Choose a name for a generated class.
      Specified by:
      getClassName in interface NamingPolicy
      Parameters:
      prefix - a dotted-name chosen by the generating class (possibly to put the generated class in a particular package)
      source - the fully-qualified class name of the generating class (for example "org.springframework.cglib.Enhancer")
      key - A key object representing the state of the parameters; for caching to work properly, equal keys should result in the same generated class name. The default policy incorporates key.hashCode() into the class name.
      names - a predicate that returns true if the given classname has already been used in the same ClassLoader.
      Returns:
      the fully-qualified class name