지금까지는 XML Configuration 방식을 사용했다면 이제 Java Configuration로 바꿀 것입니다. 일단 해당 소스 코드가 자바 설정 파일이라는 것을 알려주기위해 @Configuration 어노테이션을 사용해줍니다. 또한 아래 태그를 대체 하기위해 @ComponentScan 어노테이션을 사용해줍니다.(이때 base-package를 여러개 사용하려면 @ComponentScan({"spring.di.ui", "spring.di.entitiy"}) 이런 식으로 사용해주면 됩니다.)
<context:component-scan base-package="spring.di.ui" />
그리고 IOC 컨테이너에 bean을(부품이라고 생각하면 됩니다.) 담기 위해 @Bean어노테이션을 사용해줍니다.
@ComponentScan("spring.di.ui")
@Configuration
public class OhDIConfig {
@Bean
public Exam exam() { // 이때 함수명인 exam이 id값!
return new OhExam();
}
}
그리고 이제 XML Configuration이 아닌 Java Configuration을 사용하므로 코드를 아래처럼 변경해줍니다.
ApplicationContext context = new ClassPathXmlApplicationContext("spring/di/setting.xml"); // XML Configuration
ApplicationContext context = new AnnotationConfigApplicationContext(OhDIConfig.class); // Java Configuration