Spring cglib2

The cglib2 framework is used by Spring to manipulate Java classes in run time.

Spring cglib2

Spring cglib

     

In this section we will learn about Spring cglib library and understand the importance of it. You will also find the url to download cglib library

What is cglib?

The cglib is high performance library in Java. It is used to extend Java classes and implement interfaces in runtime. It is one the best quality code generation library available in Java. The latest version of cglib library can be downloaded from http://cglib.sourceforge.net/.

The cglib library is free software and can be used for personal and commercial purposes.

Spring 3 framework uses cglib2 for manipulating the Java classes in runtime. The cglib library is not included in Spring 3.0 distribution. So, you have to manually download and include in your project.

On the cglib home page you will find the link to download.

If you don't include the cglib dependency in your Spring 3 project you might get the following error:

Jan 2, 2010 3:22:07 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh

INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@15eb0a9:
startup date [Sat Jan 02 15:22:07 IST 2010]; root of context hierarchy

Exception in thread "main" java.lang.IllegalStateException: CGLIB is required to process @Configuration classes.
Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [spring3HelloWorldConfig]

at org.springframework.context.annotation.ConfigurationClassPost
Processor.enhanceConfigurationClasses(
ConfigurationClassPostProcessor.java:257)

at org.springframework.context.annotation.ConfigurationClass
PostProcessor.postProcessBeanFactory(
ConfigurationClassPostProcessor.java:147)

at org.springframework.context.support.AbstractApplicationContext.invokeBean
FactoryPostProcessors(
AbstractApplicationContext.java:624)

at org.springframework.context.support.AbstractApplicationContext.invoke
BeanFactoryPostProcessors(
AbstractApplicationContext.java:614)

at org.springframework.context.support.AbstractApplication
Context.refresh(
AbstractApplicationContext.java:398)

at org.springframework.context.annotation.Annotation
ConfigApplicationContext.<init>(
AnnotationConfigApplicationContext.java:65)

at net.roseindia.Spring3HelloWorldConfigTest.main(Spring3HelloWorldConfigTest.java:9)