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)