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 |