우선 ApplicationContext를 사용하기 위해서 Maven Repository에서 Spring Context 의존성을 추가해줍니다. 그후 루트에서부터 경로를 이용해서 명세서를 사용하는 ClassPathXmlApplicationContext 객체를 생성합니다.
ApplicationContext context = new ClassPathXmlApplicationContext("spring/di/setting.xml");
이렇게 객체를 생성한 뒤 두가지 방법으로 IOC컨테이너의 부품을 사용할 수 있습니다.
ExamConsole console = (ExamConsole) context.getBean("console"); // bean의 id로(이름으로) 가져오는 방법 -> 형식 변환 필요!
ExamConsole console = context.getBean(ExamConsole.class); // 인자의 타입과 일치하는 부품을 가져오는 방법
이렇게 DI를 xml을 이용한 외부 설정으로 빼서 사용할 경우 코드의 수정 없이도 xml파일만 조금 바꿔주면 DI를 수정할 수 있습니다.
ex)
<bean id="console" class="spring.di.ui.InlineExamConsole">
total is 0, avg is 0.000000
<bean id="console" class="spring.di.ui.GridExamConsole">
|---------------------|
|---total----|---avg--|
|--- 0------|--0.00--|
|---------------------|