*대부분 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을 어느 범위에서 사용할 수 있는지를 지정, 예) 싱글톤 패턴(하나의 객체만 생성), 프로토타입(매번 객체 생성)

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

'프레임워크 > 스프링' 카테고리의 다른 글

스프링 DB연결 흐름도  (0) 2021.08.26
스프링 공부 시작!!! IoC와 AOP  (0) 2021.08.04

스프링 프레임워크의 특징 : "IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크"

IOC(Inversion of Control) : IoC(제어의 역행)는 낮은 결합도와 높은 응집도를 더 편리게 할 수 있으며 간단하게 말하면 소스의 의존관계가 명시되지 않으므로 결합도 떨어져서 유지보수가 편하다.

AOP(Aspect Oriented Programming): (AOP)관점지향 프로그래밍은 핵심 비즈니스 로직과 각 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리함으로써 응집도가 높게 개발할 수 있도록 지원한다. 쉽게 이해하자면 자주 사용하는 메소드를 따로 파일을 만들어 다양한곳에서 사용하는 것이다.

 

 

위에 내용은 "스프링 퀵 스타트"의 책을 공부하며 이해한 내용을 바탕으로 작성한 글입니다.

'프레임워크 > 스프링' 카테고리의 다른 글

스프링 DB연결 흐름도  (0) 2021.08.26
스프링 공부 - 컨테이너-  (0) 2021.08.05

+ Recent posts