프레임워크/스프링

스프링 공부 - 컨테이너-

hpaaycim 2021. 8. 5. 23:53

*대부분 IoC컨테이너는 각 컨테이너에서 고나리할 객체들을 위한 별도의 파일 설정

서블릿 - web.xml 

EJB - ejb-jar.xml

스프링 - sts이용하여 web.xml의 설정

*스프링 컨테이너 설정 및 순서

1. 스프링 컨테이너 구동 - Spring Bean Configuration File 선택 후 "applicationContext"파일 생성 후 <bean>엘리먼트안에 클래스 파일 설정 (패키지 제대로 설정하는게 가장 중요) 그리고 applicationContext.xml을 로딩하면 스프링 컨테이너 구동은 끝난다.

2. 객체를 getBean()메소드 이용하여 요청

스프링 컨테이너의 동작 순서 

1. 클라이언트가 스프링 설정 파일을 로딩하여 컨테이너 구동

2.스프링 설정 파일에 <bean>등록된 객체 생성

3.getBean()메소드로 이름이 같은 객체를 요청(Lookup)

4.객체를 반환

*스프링 컨테이너의 종류  1. BeanFactory(객체관리) 2.ApplicationContext(객체관리, 트랜잭션 관리, 다국어 처리 등 다양한 기능 지원)       2.ApplicationContext유형의 컨테이너를 대부분 사용한다.                       

ApplicationContext유형은 다양하지만 가장 많이 사용하는 두 개의 클래스만 알고 있으면 된다.

1.GenericXmlApplicationContext - 파일 시스템이나 클래스 경로에 있는 XML 설정 파일을 로딩하여 구동

2.XmlWebApplicationContext - 웹 기반의 스프링 애플리케이션을 개발할 때 사용하는 컨테이너

* 스프링 XML 설정

1.<beans> 루트 엘리먼트 - 시작 태그에 네임스페이스를 비롯한 XML 스키마 관련 정보가 설정, <bean>.<description>,<alias>,<import> 등 4개의 엘리먼트를 자식 엘리먼트로 사용할 수 있다. 

2.<import> 엘리먼트 - 기능별 여러 XML 파일로 나누어 설정하는 것(효율적), 하나로 통합할 때 <import>엘리먼트 사용 

3. <bean> 엘리먼트 - 스프링 설정 파일에 클래스를 등록하려면 사용, id와 class속성을 사용, class속성은 필수이다. 다만 id는 <bean>객체를 위한 이름을 지정할때 사용하는 속성이다. 반드시 속성의 이름은 유일한 값이여야 한다. (주로 카멜표기법 사용) - 자바 식별자 규칙을 따르지 않을때는 id대신 name을 사용한다.

4.<bean>엘리먼트 속성

- init-method 속성 : 멤버변수 초기화 작업이 필요할 때 사용

- destory-method 속성: 객체를 삭제하기 직전에 호출될 임의의 메소드 지정

- lazy-init 속성 : <bean>이 사용되는 시점에 객체를 생성하도록 init-lazy 속성을 제공, true로 설정하면 미리 생성하지 않고 요청시 생성

- scope 속성 : bean을 어느 범위에서 사용할 수 있는지를 지정, 예) 싱글톤 패턴(하나의 객체만 생성), 프로토타입(매번 객체 생성)

--위 글은 "스프링 퀵 스타트" 책을 통해 이해한 내용을 정리한 글입니다.