131. XML 기반 빈 관리 컨테이너 (1)
스프링 프레임워크는 우리가 만든 spms.context.ApplicationContext 클래스보다 훨씬 더 뛰어난 객체 관리 컨테이너(IoC 컨테이너라고도 부름)를 제공한다. 스프링에서는 자바 객체를 '빈(Bean)' 이라고 한다. 그래서 객체 관리 컨테이너를 '빈 컨테이너'라 부른다. 스프링 IoC 컨테이너(빈 컨테이너)를 우리의 예제 프로젝트에 적용하기 전에 먼저 간단히 사용법을 배워 본다. 스프링 IoC 컨테이너는 두 가지 방법으로 빈 정보를 다룬다. XML과 어노테이선이다. 이번 절에서는 XML을 기반으로 한 빈 관리 방법을 배운다. 어노테이션을 이용한 방법은 다음 장에서 진행한다.
1. ApplicationContext 인터페이스
스프링은 IoC 컨테이너가 갖추어야 할 기능들을 ApplicationContext 인터페이스에 정의해 두었다. 스프링에서 제공하는 IoC 컨테이너들은 모두 이 ApplicationContext 규칙을 따르고 있다. 다음 그림은 스프링 프로젝트에서 주로 사용하는 IoC 컨테이너들의 계층도이다(그림 1).
스프링에서 빈 정보는 XML 파일에 저장해 두고 ClassPathXmlApplicationContext 클래스나 FileSystemXmlApplicationContext 클래스를 사용하여 빈을 자동 생성한다. 클래스 이름을 보면 이 두 클래스가 어떤 역할을 할 지 짐작할 수 있다. ClassPathXmlApplicationContext 클래스는 자바 클래스 경로에서 XML로 된 빈 설정 파일을 찾는다. FileSystemXmlApplicationContext 클래스는 파일 시스템 경로에서 빈 설정 파일을 찾는다. WebApplicationContext 클래스는 웹 애플리케이션을 위한 IoC 컨테이너로서 web.xml 파일에 설정된 정보에 따라 XML 파일을 찾는다.
※ 클래스 경로란?
자바 가상 머신(JVM)이 클래스를 찾을 때 참고하는 폴더 목록이다. 외부 라이브러리나 개발자가 만든 클래스를 사용하려면 'CLASSPATH'라는 이름으로 운영체제의 환경변수에 등록해야 한다. 또는 JVM을 실행할 때 인자값(arguments)으로 클래스 경로를 전달해야 한다. 클래스 경로에 대한 자세한 내용은 대부분의 자바 프로그래밍 관련 책에서 찾을 수 있다.
참고로 JVM은 다음 순서로 클래스 파일을 찾는다.
1) 부트스트랩(Bootstrap) - JRE에서 제공하는 라이브러리 파일 rt.jar, i18n.jar 등
2) 확장 라이브러리 - JRE 홈 폴더의 lib/ext 폴더에 들어 있는 JAR 핑;ㄹ
3) CLASSPATH - 운영체제의 CLASSPATH 환경변수에 등록된 폴더 및 JAR 파일들
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr