본문 바로가기

BOOK/토비의스프링

[2권] 토비의 스프링 2권 3일차

ContextLoaderListener 

초기화 대상 : ApplicationContext

사용 설정 파일 : applicationContext.xml -> 보통 WEB-INF/applicationContext.xml에 위치.

자동으로 생성해주는 Context class : XmlWebApplicationContext -> 대체 가능한 Context class : AnnotationConfigWebApplicationContext

 

Front Controller Servlet : DispatcherServlet

Servlet Name : spirng으로 한다면 네임스페이스는 spring-servlet으로 구성되고 디폴트 설정파일은 WEB-INF/spring-servlet.xml로 구성

기본적으로 서블릿의 초기화 작업 도중에 Spring Context를 생성 -> 왜냐면 문제가 발생할수 있고, 문제가 발생한다면 최대한 빨리 찾아야 하기 때문에.

 

 

 

IOC

빈 설정 메타정보를 통해 빈의 클래스와 이름을 제공받음 -> 메타정보는 파일이나 에노테이션 같은 리소스로부터 전용 리더를 통해 읽혀서 BeanDefinition 타입의 오브젝트로 변환 -> 이 BeanDefinition정보를 IOC 컨테이너가 이용.

 

BeanDefinition

활용 : IOC 컨테이너가 Bean을 만들때 필요한 핵심정보가 들어있다.

빈 등록 방법

1) XML의 <bean> tag를 통하는 방법

2) 특별한 에노테이션을 활용하여, 빈 스캐닝을 통한 자동인식 빈등록하는 방법 -> 빈스캐닝을 담당하는 오브젝트를 BeanSacnner라고 칭함. -> 지정된 Class Path아래에 있는 모든 패키지의 클래스를 대상으로 필터 적용 -> 빈스캐너에 내장된 디폴트 필터는 @Component 에노테이션이다.

하나의 Bean이 등록되기 위해서는 Class 이름과 Bean ID가 필요하다.

 

AnnotationConfigApplicationContext -> 빈스캐너를 내장하고 있는 애플리케이션 컨텍스트 구현 클래스.

구현 방법

new AnnotationApllicationContext ( 스캔할 패키지명);

자동 등록되는 Bean의 아이디는 클래스의 이름의 첫글자를 소문자로 바꿔서 사용한다.

특정의 이름을 부여하고 싶다면 @Component(이름)과 같은 형식으로 이름을 입력하면 된다.

 

위와 같은 방법의 장점은 간편하게 빈을 등록할수 있다는 것이고, 단점은 한눈에 Bean이 어떤게 있는지 파악할수 없다는것이 단점이다.

 

자바 코드에 의한 빈 등록

@Configuration, @Bean 메소드

 

 

'BOOK > 토비의스프링' 카테고리의 다른 글

[2권] 토비의 스프링 5일차  (0) 2022.09.23
[토비의 스프링 2권] 4일차  (0) 2022.09.18
[1권] 토비의 스프링 10일차  (0) 2022.09.07
[1권] 토비의 스프링 9일차  (0) 2022.09.05
[1권] 토비의 스프링 8일차  (0) 2022.09.03