new AnnotationConfigApplicationCOntext(AppConfig.class)
AppConfig.class : Spring IoC 컨테이너의 설정을 수행하는 클래스
1. AppConfig(자바 config) 객체 생성
2. 클래스나 메서드, 필드에 붙은 애노테이션 처리
@ComponentScan("패키기명")
: 해당 패키지에 존재하는 클래스 중에서 Spring 프레임워크에서 지정한 애노테이션이 붙은 경우 객체를 생성하고 애노테이션을 처리한다.
@Bean("객체명")
: 메서드를 호출하여 리턴된 값을 컨테이너에 보관한다.
* 개발자의 일
-애노테이션의 의미와 효과를 이해하고
-적절하게 사용하여
-IoC 컨테이너를 통제한다
FileSystemXMLApplicationContext
---> XML태그로 설정
: OS 디렉토리경로에서 찾는다.
ClassPathXmlApplicationContext
---> XML태그로 설정
: 자바 클래스경로에서 XML파일을 찾는다.
"Java Config" 클래스에 애노테이션을 붙여서 설정하는것을 java config라 부른다.
AnnotationConfigApplicationContext
---> 자바 클래스 애노테이션으로 설정
: 자바 클래스 경로에서 찾는다.
Web Application에서 사용하는 IoC 컨테이너
AnnotationConfigWebApplicationContext
---> 자바 클래스 애노테이션으로 설정
: 기존의 AnnotationConfigApplicationContext
에서 서블릿관련 객체를 보관하는 기능을 추가(ServletContext, HttpSession 등)
XmlWebApplicationContext
---> XML태그로 설정
:
DispatcherServlet
---> AnnotationConfigWebApplicationContext
를 포함
: Front Controller
<<IoC Container>>AnnotationConfigWebApplicationContex
: <<Java Config>>AppConfig
를 포함하고 있음
: @Component
, @Controller
, @Service
, @Repository
등을 생성 및 관리
<<IoC Container>> AnnotationConfigApplicationContext
@Component
: IoC 컨테이너가 @Component
애노테이션이 붙은 클래스에 대해 객체를 자동으로 생성한다.
@Component
하위 애노테이션
: 클래스 역할에 따라 좀더 섬세하게 제어하기 위해 만든 애노테이션
: @RestController
JSON, XML을 응답하는 페이지 컨트롤러에 붙인다.
: @Controller
HTML을 응답하는 페이지 컨트롤러에 붙인다.
: @Service
비즈니스로직 및 트랜잭션을 제어하는 클래스에 붙인다.
: @Repository
DAO 역할을 수행하는 클래스에 붙인다.
<<IoC Container>> AnnotationConfigWebApplicationContext
@Component
+ ServletContext
, HttpSession
, ServletRequest
, ServletResponse
등 웹관련 컴포넌트도 관리한다.
Create
Retrieve
, Read
Update
Delete