@Configuration

Spring 3.x 에서 @configuration annotation 사용할 경우 문제

Spring에서 application-context.xml 설정파일을 사용하지 않고 다음과 같이 Configuration을 지정하여 Bean을 사용할 경우 오류가 발생한다.

Source :

import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

	@Bean
   //...

}

Error :

org.springframework.context.support.AbstractApplicationContext prepareRefresh
//...
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: [appConfig]
//...
at com.mkyong.core.App.main(App.java:12)

문제원인은 @Configuration 어노테이션을 spring 3 에서 사용시 CGLIB library를 추가해줘야한다. (maven pom.xml파일에 dependency를 추가해주면 됨)

<dependency>
	<groupId>cglib</groupId>
	<artifactId>cglib</artifactId>
	<version>2.2.2</version>
</dependency>

Ref:mkyong