Skip to content
auoeke edited this page Nov 20, 2021 · 14 revisions
Clone this wiki locally


cglib is a powerful, high performance and quality Code Generation Library. It is used to extend Java classes and implements interfaces at runtime. See samples and API documentation to learn more about features.

This library is free software, freely reusable for personal or commercial purposes.


Latest Release:

All Releases:

cglib-#.#_#.jar - binary distribution, CGLIB classes only, it must be used to extend cglib classes dependant on ASM API

cglib-nodep-#.#_#.jar - binary distribution, CGLIB and renamed ASM classes, not extendable

An introductory tutorial on using cglib can be found here.


Open source projects that use cglib and are used by cglib:

  • "The Byte Code Engineering Library (formerly known as JavaClass) is intended to give users a convenient possibility to analyze, create, and manipulate (binary) Java class files (those ending with .class)." Used by cglib for Class file format manipulation.
  • "XORM is an extensible object-relational mapping layer for Java applications. It provides interface-based persistence to RDBMSs while allowing developers to focus on the object model, not the physical layer." Uses cglib to generate persistent classes.
  • "Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom, including association, inheritance, polymorphism, composition and the Java collections framework." Uses cglib to generate proxies for persistent classes.
  • "The Java Class File Editor allows you to read / modify java .class files, either on disk or while loading classes at runtime. The project grew out of the Generic Delegator, which creates new classes on the fly, allowing you to dynamically implement a group of interfaces by forwarding them to a shim" Both cglib and JCFE provide dynamic proxy implementation
  • "Voruta reduces JDBC code in application, it makes code more readable and safe, SQL procedures and queries are mapped to JAVA methods using custom javadoc tags and dynamic code generation at runtime. It needs no custom build tools or external files" Uses cglib to generate method implementations.
  • "Nanning Aspects is a simple yet scaleable aspect-oriented framework for Java."
  • "Spring is a J2EE application framework based on code published in Expert One-on-One J2EE Design and Development by Rod Johnson."
  • "The iBATIS Database Layer takes a different approach to solving the Object Relational mapping problem --it avoids it altogether!"
  • "ASM is a Java bytecode manipulation framework. It offers similar functionalities as BCEL or SERP, but is much more smaller and faster than these tools."
  • "Proxool is a Java connection pool."
  • "Guice is a lightweight dependency injection framework for Java 5 and above, brought to you by Google."
  • "ModelMapper is an intelligent object mapping library that automatically maps objects to each other. It uses a convention based approach while providing a simple refactoring safe API for handling specific use cases."

How To

Visit How To