SlideShare a Scribd company logo
1 of 30
㈜유미테크
Spring MVC
( 엔터프라이즈 어플리케이션에서 제공하는
프레임워크 )
㈜유미테크2㈜유미테크 SiteMesh
목차
1. Spring Framework 소개
2. 개발 환경과 Spring Project 생성
3. Spring beans & context 소개 (DispatcherServlet)
4. Spring MVC 소개
5. 핸들러매핑
6. 컨트롤러
7. 핸들러 인터셉터
8. ViewResolver
9. View
10.예외처리
㈜유미테크3㈜유미테크 SiteMesh
1. Spring Framework 소개
1. Spring Framework 란 ?
엔터프라이즈 어플리케이션에서 필요로 하는 기능을 제공하는 프레임
워크
2. Spring Framework 특징
1. IoC (Inversion of Control)
2. DI (Dependency Injection
3. AOP (Aspect Oriented Programming)
4. 경량 컨테이너
㈜유미테크4㈜유미테크 SiteMesh
3. Spring Framework 기본 구성
Spring
AOP
Spring
AOP
Spring ORMSpring ORM
Spring ContextSpring Context
Spring WebSpring Web
Spring DAOSpring DAO
Spring
Web MVC
Spring
Web MVC
Spring CoreSpring Core
1. Spring Framework 소개
㈜유미테크5㈜유미테크 SiteMesh
2. 개발 환경과 Spring Project 생성
1. eclipse
2. Spring Tool Suite : juno -> /Collaboration/m2e
plug-in 설치
㈜유미테크6㈜유미테크 SiteMesh
2. 개발 환경과 Spring Project 생성
㈜유미테크7㈜유미테크 SiteMesh
2. 개발 환경과 Spring Project 생성
㈜유미테크8㈜유미테크 SiteMesh
3. Spring beans & context 소개
1.web.xml
ApplicationContext 설정
DispatcherServlet 설정
㈜유미테크9㈜유미테크 SiteMesh
3. Spring beans & context 소개
2. DispatcherServlet 의 기본 DI 전략
• HanlderMapping
- 요청정보를 기준으로 어떤 컨트롤러를 사용할 것인지를 결정하는 로직을 담당한
다
- Default : BeanNameHandlerMapping, DafaultAnnotationHandlerMapping
• HandlerAdapter
- HandlerMapping 으로 선택한 컨트롤러를 DispatcherServlet 이 호출할때 사용하
는 어댑터이다 .
- Default : HttpRequestHandlerAdapter, SimpleControllerHandlerAdapter,
AnnotationMethodHandlerAdapter
• HandlerExceptionResolver
- 컨트롤러의 작업 중에 발생한 예외를 어떻게 처리할지 결정한다 .
- Default : AnnotationMethodHandlerExceptionResolver,
ResponseStatusExceptionResolver, DafaultHandlerExceptionResolver
㈜유미테크10㈜유미테크 SiteMesh
3. Spring beans & context 소개
2. DispatcherServlet 의 기본 DI 전략
• ViewResolver
- 컨트롤러가 리턴한 뷰 이름을 참고해서 적절한 뷰 오브젝트를 찾아준다 .
- Default : InternalResourceViewResolver
• RequestToViewNameTranslator
- 컨트롤러에서 뷰 이름이나 뷰 오브젝트를 제공해주지 않았을 경
우 뷰 이름을 생성해준다 .
- Default : DefaultRequestToViewNameTranslator
• LocaleResolver
- locale 정보를 결정해준다 .
- Default : AcceptHeaderLocalResolver
• ThemeResolver
- 테마를 가지고 사이트를 구성할 경우 테마 정보를 결정해 준다 .
㈜유미테크11㈜유미테크 SiteMesh
3. Spring beans & context 소개
3. bean 생성
1. xml 설정 파일로 bean 생성
2. annotation 을 이용한 bean 생성
• Stereotype annotation :
@Component, @Controller, @Service, @Repository..
• 빈 이름을 특정 이름으로 설정
• 클래스의 이름 (homeController) 을 빈 이름으로 사용
㈜유미테크12㈜유미테크 SiteMesh
3. Spring beans & context 소개
• annotation 을 이용한 bean 생성
- 설정 파일 : servlet-context.xml
- 해당 패키지에서 어노테이션이 적용된 클래스를 검색하여 빈으로 자동 등
록 .
- 스캔 대상 클래스 범위 지정
<context:include-filter type=“” expression=“”/>
<context:exclude-filter type=“” expression=“”/>
annotation : 클래스에 지정한 어노테이션이 적용 되었는지의 여부
(expression ( 예 )
org.springframework.stereotype.Controller )
assignable : 클래스가 지정한 타입으로 할당 가능한지의 여부
regex : 클래스 이름이 정규 표현식에 매칭되는지의 여부
aspectj : 클래스 이름이 AspectJ 의 표현식에 매칭되는지의 여부
㈜유미테크13㈜유미테크 SiteMesh
4. bean Scope
• singleton : 객체를 한번만 생성
• prototype
: 필요한 매 순간 새로운 객체를 생성
• request
: 하나의 웹 요청 안에서 생성 , 해당 요청이 끝날 때 제거
• session
: HTTP session 과 같은 존재 범위를 갖는 객체 생성
• Global session
설정 방법
- 설정 파일에서 bean 등록하는 경우
- annotation 으로 bean 등록하는 경우
3. Spring beans & context 소개
㈜유미테크14㈜유미테크 SiteMesh
4. Spring MVC 소개
1. 스프링 MVC 의 처리 흐름 .
Client
Dispatcher
Servlet
Handler
Mapping
Controller
ViewResolver
View
ModelAndView
1. 처리요청
(URL)
2. 요청 URL 과 매핑되는
Controller 검색
3. 처리요청
4. ModelAndView 지원
5. Controller 의 실행결과를
보여줄
View 검색
6.응
답
출
력
㈜유미테크15㈜유미테크 SiteMesh
5. 핸들러 매핑
Client
Dispatcher
Servlet
Handler
Mapping
Controller
ViewResolver
View
ModelAndView
1. 처리요청
(URL)
2. 요청 URL 과 매핑되는
Controller 검색
3. 처리요청
4. ModelAndView 지원
5. Controller 의 실행결과를
보여줄
View 검색
6.응
답
출
력
㈜유미테크16㈜유미테크 SiteMesh
5. 핸들러 매핑
• BeanNameUrlHandlerMapping
: bean 의 name 속성에 있는 URL 을 HTTP 요청의 URL 과 비교해서
일치하는 bean 을 찾아준다 .
• ControllerBeanNameHandlerMapping
: bean 의 id 나 name 을 이용해서 매핑한다 .
• ControllerClassNameHandlerMapping
: 클래스 이름을 URL 에 매핑한다 .
㈜유미테크17㈜유미테크 SiteMesh
• SimpleUrlHandlerMapping
: URL 과 컨트롤러의 매핑정보를 한 곳에 모아 놓을 수 있는 핸들러
매핑
• DefaultAnnotationHandlerMapping
: @RequestMapping 어노테이션을 이용한 매핑
5. 핸들러 매핑
㈜유미테크18㈜유미테크 SiteMesh
Client
Dispatcher
Servlet
Handler
Mapping
Controller
ViewResolver
View
ModelAndView
1. 처리요청
(URL)
2. 요청 URL 과 매핑되는
Controller 검색
3. 처리요청
4. ModelAndView 지원
5. Controller 의 실행결과를
보여줄
View 검색
6.응
답
출
력
6. 컨트롤러
㈜유미테크19㈜유미테크 SiteMesh
6. 컨트롤러
1. 컨트롤러의 종류와 핸들러 어댑터
• Servlet 과 SimpleServletHandlerAdapter
- javax.servlet.Servlet 을 구현한 Servlet Class 를 Spring MVC 의
Controller 로 사용 .
• HttpRequestHandler 와 HttpRequestHandlerAdapter
• Controller 와 SimpleControllerHandlerAdapter
㈜유미테크20㈜유미테크 SiteMesh
• AnnotationMethodHandlerAdapter
: Controller 의 타입이 정해져 있지 않다 .
6. 컨트롤러
㈜유미테크21㈜유미테크 SiteMesh
2. @Controller 를 적용한 경우의 파라미터 종류
@PathVariable : @RequestMapping 의 URL 에 { } 로 들어가는 패스
변수를 받는다 .
@RequestParam : HTTP 요청 파라미터를 메소드 파라미터에 넣어 준
다
Map, Model, ModelMap
6. 컨트롤러
㈜유미테크22㈜유미테크 SiteMesh
• String
- 뷰 이름으로 사용된다 .
• Void
- RequestToViewNameResolver 를 통해 자동 생성되는 뷰 이름이
사용된다 .
3. @Controller 를 적용한 경우의 리턴 타입 종류
6. 컨트롤러
㈜유미테크23㈜유미테크 SiteMesh
• ModelAndView
- 컨트롤러가 리턴해야하는 정보를 담고 있는 가장 대표적인 타입
.
• @ResponseBody
- 리턴되는 값이 View 를 통해 출력되지 않고 HTTP Response
Body 에 직접 쓰여진다 .
6. 컨트롤러
㈜유미테크24㈜유미테크 SiteMesh
7. 핸들러 인터셉터
• HandlerInterceptor interface
• HandlerInterceptor 등록
㈜유미테크25㈜유미테크 SiteMesh
Client
Dispatcher
Servlet
Handler
Mapping
Controller
ViewResolver
View
ModelAndView
1. 처리요청
(URL)
2. 요청 URL 과 매핑되는
Controller 검색
3. 처리요청
4. ModelAndView 지원
5. Controller 의 실행결과를
보여줄
View 검색
6.응
답
출
력
8. ViewResolver
㈜유미테크26㈜유미테크 SiteMesh
8. ViewResolver
• InternalResourceViewResolver
: default, 주로 JSP 를 뷰로 사용하고자 할 때 쓰인다
• ResourceBundleViewResolver
: 클래스 패스의 views.properties 파일을 사용한다 .
- views.properties
- servlet-context.xml
- Controller
㈜유미테크27㈜유미테크 SiteMesh
• XmlViewResolver
: ResourceBundleViewResolver 와 유사 . 프로퍼티 파일 대신 XML 의 빈 설
정파일을 이용해 뷰를 등록
• BeanNameViewResolver
: 뷰 이름과 동일한 빈 이름을 가진 빈을 찾아서 뷰로 사용
8. ViewResolver
㈜유미테크28㈜유미테크 SiteMesh
Client
Dispatcher
Servlet
Handler
Mapping
Controller
ViewResolver
View
ModelAndView
1. 처리요청
(URL)
2. 요청 URL 과 매핑되는
Controller 검색
3. 처리요청
4. ModelAndView 지원
5. Controller 의 실행결과를
보여줄
View 검색
6.응
답
출
력
9. View
㈜유미테크29㈜유미테크 SiteMesh
9. View
• InternalResourceView
: RequestDispatcher 의 forward() 를 이용하는 뷰
• RedirectView
: HttpServletResponse 의 sendRedirect() 를 호출해주는 기능을
가진 뷰
㈜유미테크30㈜유미테크 SiteMesh
10. 예외 처리 (HandlerExceptionResolver)
• HandlerExceptionResovler Interface
• AnnotationMethodHandlerExceptionResolver
: @ExceptionHandler 어노테이션이 붙은 메소드를 찾는다 .
• SimpleMappingExceptionResolver
: 예외를 처리할 뷰를 지정할 수 있게 해준다
• DefaultHandlerExceptionResolver

More Related Content

What's hot

overview of spring4
overview of spring4overview of spring4
overview of spring4Arawn Park
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Choonghyun Yang
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
세미나 Spring mybatis
세미나 Spring mybatis세미나 Spring mybatis
세미나 Spring mybatisSomang Jeong
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
Spring boot 5장 cli
Spring boot 5장 cliSpring boot 5장 cli
Spring boot 5장 cliChoonghyun Yang
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Spring 4.x Web Application 살펴보기
Spring 4.x Web Application  살펴보기Spring 4.x Web Application  살펴보기
Spring 4.x Web Application 살펴보기Ji Heon Kim
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 
03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법Hankyo
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재Hankyo
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재Hankyo
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)Hankyo
 

What's hot (20)

overview of spring4
overview of spring4overview of spring4
overview of spring4
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
세미나 Spring mybatis
세미나 Spring mybatis세미나 Spring mybatis
세미나 Spring mybatis
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
Express 프레임워크
Express 프레임워크Express 프레임워크
Express 프레임워크
 
Spring boot 5장 cli
Spring boot 5장 cliSpring boot 5장 cli
Spring boot 5장 cli
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
 
Spring 4.x Web Application 살펴보기
Spring 4.x Web Application  살펴보기Spring 4.x Web Application  살펴보기
Spring 4.x Web Application 살펴보기
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법03.[참고]표준프레임워크기반 개발방법
03.[참고]표준프레임워크기반 개발방법
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재
 
04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)04.실행환경 실습교재(화면처리)
04.실행환경 실습교재(화면처리)
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 

Viewers also liked

스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 Sungchul Park
 
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용Sungchul Park
 
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동Sungchul Park
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기Sungchul Park
 
SpringCamp2013 Spring MVC TEST
SpringCamp2013 Spring MVC TEST SpringCamp2013 Spring MVC TEST
SpringCamp2013 Spring MVC TEST YongEun Choi
 
스프링 3.0 RESTful & restTemplate
스프링 3.0  RESTful & restTemplate스프링 3.0  RESTful & restTemplate
스프링 3.0 RESTful & restTemplateisyoon
 
Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Sewon Ann
 
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인dgmit2009
 
Application framework 정의및비교(김일영)_20110609
Application framework 정의및비교(김일영)_20110609Application framework 정의및비교(김일영)_20110609
Application framework 정의및비교(김일영)_20110609Mike 김일영
 
Puma At Large Nce Iii
Puma At Large Nce IiiPuma At Large Nce Iii
Puma At Large Nce Iiivictorgaogao
 
Ipl자동화방안제안 애플트리랩
Ipl자동화방안제안 애플트리랩Ipl자동화방안제안 애플트리랩
Ipl자동화방안제안 애플트리랩JaeWoo Wie
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.Hojin Jun
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Yeon Soo Kim
 
OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3crwanare
 
The hidden gems of Spring Security
The hidden gems of Spring SecurityThe hidden gems of Spring Security
The hidden gems of Spring SecurityMassimiliano Dessì
 
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례kisu kim
 
엔터프라이즈 웹 동향 및 적용사례
엔터프라이즈 웹 동향 및 적용사례엔터프라이즈 웹 동향 및 적용사례
엔터프라이즈 웹 동향 및 적용사례욱래 김
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델NAVER D2
 
Spring framework 4.x
Spring framework 4.xSpring framework 4.x
Spring framework 4.xArawn Park
 

Viewers also liked (20)

스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
 
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
 
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
 
스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
 
SpringCamp2013 Spring MVC TEST
SpringCamp2013 Spring MVC TEST SpringCamp2013 Spring MVC TEST
SpringCamp2013 Spring MVC TEST
 
스프링 3.0 RESTful & restTemplate
스프링 3.0  RESTful & restTemplate스프링 3.0  RESTful & restTemplate
스프링 3.0 RESTful & restTemplate
 
Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원Spring 3의 jsr 303 지원
Spring 3의 jsr 303 지원
 
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인
제 3회 DGMIT UI&UX 컨퍼런스 : 미디어 아트 디자인
 
Application framework 정의및비교(김일영)_20110609
Application framework 정의및비교(김일영)_20110609Application framework 정의및비교(김일영)_20110609
Application framework 정의및비교(김일영)_20110609
 
Puma At Large Nce Iii
Puma At Large Nce IiiPuma At Large Nce Iii
Puma At Large Nce Iii
 
Ipl자동화방안제안 애플트리랩
Ipl자동화방안제안 애플트리랩Ipl자동화방안제안 애플트리랩
Ipl자동화방안제안 애플트리랩
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
 
OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3OAF Developer Guide 13.1.3
OAF Developer Guide 13.1.3
 
The hidden gems of Spring Security
The hidden gems of Spring SecurityThe hidden gems of Spring Security
The hidden gems of Spring Security
 
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례
성공적인 Sw사업 수행을 위한 프로세스 프레임워크 및 적용사례
 
엔터프라이즈 웹 동향 및 적용사례
엔터프라이즈 웹 동향 및 적용사례엔터프라이즈 웹 동향 및 적용사례
엔터프라이즈 웹 동향 및 적용사례
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
 
Oracle application framework (oaf) online training
Oracle application framework (oaf) online trainingOracle application framework (oaf) online training
Oracle application framework (oaf) online training
 
Spring framework 4.x
Spring framework 4.xSpring framework 4.x
Spring framework 4.x
 

Similar to Spring MVC

#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발NAVER D2
 
[스프링 스터디 3일차] @MVC
[스프링 스터디 3일차] @MVC[스프링 스터디 3일차] @MVC
[스프링 스터디 3일차] @MVCAnselmKim
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료수홍 이
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기NAVER Engineering
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)Sang Don Kim
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
Restful web service
Restful web serviceRestful web service
Restful web servicesunguen lee
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
[웹기반시스템 3조]e govframe 중간고사 제출 정리
[웹기반시스템 3조]e govframe 중간고사 제출 정리[웹기반시스템 3조]e govframe 중간고사 제출 정리
[웹기반시스템 3조]e govframe 중간고사 제출 정리구 봉
 
I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages SangHoon Han
 
Spring Framework - Inversion of Control Container
Spring Framework - Inversion of Control ContainerSpring Framework - Inversion of Control Container
Spring Framework - Inversion of Control ContainerKyung Koo Yoon
 
E government framework
E government frameworkE government framework
E government frameworkHyungKuIm
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기YoungSu Son
 

Similar to Spring MVC (20)

#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
[스프링 스터디 3일차] @MVC
[스프링 스터디 3일차] @MVC[스프링 스터디 3일차] @MVC
[스프링 스터디 3일차] @MVC
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
Restful web service
Restful web serviceRestful web service
Restful web service
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
 
[웹기반시스템 3조]e govframe 중간고사 제출 정리
[웹기반시스템 3조]e govframe 중간고사 제출 정리[웹기반시스템 3조]e govframe 중간고사 제출 정리
[웹기반시스템 3조]e govframe 중간고사 제출 정리
 
I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages
 
Spring Framework - Inversion of Control Container
Spring Framework - Inversion of Control ContainerSpring Framework - Inversion of Control Container
Spring Framework - Inversion of Control Container
 
E government framework
E government frameworkE government framework
E government framework
 
Annotation
AnnotationAnnotation
Annotation
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
 
okspring3x
okspring3xokspring3x
okspring3x
 

More from ymtech

20171120 tech day-11th-소프트웨어 테스팅2-서현용
20171120 tech day-11th-소프트웨어 테스팅2-서현용20171120 tech day-11th-소프트웨어 테스팅2-서현용
20171120 tech day-11th-소프트웨어 테스팅2-서현용ymtech
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중ymtech
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한ymtech
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈ymtech
 
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석ymtech
 
20170414 techday 2nd_uiux디자인-최민희
20170414 techday 2nd_uiux디자인-최민희20170414 techday 2nd_uiux디자인-최민희
20170414 techday 2nd_uiux디자인-최민희ymtech
 
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍ymtech
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정ymtech
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치ymtech
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swiftymtech
 
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212ymtech
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Settingymtech
 
Intel Galileo Linux Setting
Intel Galileo Linux SettingIntel Galileo Linux Setting
Intel Galileo Linux Settingymtech
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치ymtech
 
HP 3800-24G-2SFP OpenFlow Setting
HP 3800-24G-2SFP OpenFlow SettingHP 3800-24G-2SFP OpenFlow Setting
HP 3800-24G-2SFP OpenFlow Settingymtech
 
Openstack Instance Resize
Openstack Instance ResizeOpenstack Instance Resize
Openstack Instance Resizeymtech
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migrationymtech
 
SDN OpenFlow Load Balancer 시나리오
SDN OpenFlow Load Balancer 시나리오SDN OpenFlow Load Balancer 시나리오
SDN OpenFlow Load Balancer 시나리오ymtech
 
TR-069 클라이언트 검토자료8편
TR-069 클라이언트 검토자료8편TR-069 클라이언트 검토자료8편
TR-069 클라이언트 검토자료8편ymtech
 
TR-069 클라이언트 검토자료7편
TR-069 클라이언트 검토자료7편TR-069 클라이언트 검토자료7편
TR-069 클라이언트 검토자료7편ymtech
 

More from ymtech (20)

20171120 tech day-11th-소프트웨어 테스팅2-서현용
20171120 tech day-11th-소프트웨어 테스팅2-서현용20171120 tech day-11th-소프트웨어 테스팅2-서현용
20171120 tech day-11th-소프트웨어 테스팅2-서현용
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
 
20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한20170713 tech day_7th_pxe 부팅-김주한
20170713 tech day_7th_pxe 부팅-김주한
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈
 
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
20170519 tech day-3rd-highcharts를 이용한 차트 구현-김영석
 
20170414 techday 2nd_uiux디자인-최민희
20170414 techday 2nd_uiux디자인-최민희20170414 techday 2nd_uiux디자인-최민희
20170414 techday 2nd_uiux디자인-최민희
 
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
 
Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정Mikrotic CCR1036 라우팅 설정
Mikrotic CCR1036 라우팅 설정
 
Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치Cubietruck 리눅스 이미지 설치
Cubietruck 리눅스 이미지 설치
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swift
 
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
Welcome to keystone the open stack identity service_v1.0.0-20141208-1212
 
Ubuntu Host AP Setting
Ubuntu Host AP SettingUbuntu Host AP Setting
Ubuntu Host AP Setting
 
Intel Galileo Linux Setting
Intel Galileo Linux SettingIntel Galileo Linux Setting
Intel Galileo Linux Setting
 
MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치MarsBoard RK3066 Linux 설치
MarsBoard RK3066 Linux 설치
 
HP 3800-24G-2SFP OpenFlow Setting
HP 3800-24G-2SFP OpenFlow SettingHP 3800-24G-2SFP OpenFlow Setting
HP 3800-24G-2SFP OpenFlow Setting
 
Openstack Instance Resize
Openstack Instance ResizeOpenstack Instance Resize
Openstack Instance Resize
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
SDN OpenFlow Load Balancer 시나리오
SDN OpenFlow Load Balancer 시나리오SDN OpenFlow Load Balancer 시나리오
SDN OpenFlow Load Balancer 시나리오
 
TR-069 클라이언트 검토자료8편
TR-069 클라이언트 검토자료8편TR-069 클라이언트 검토자료8편
TR-069 클라이언트 검토자료8편
 
TR-069 클라이언트 검토자료7편
TR-069 클라이언트 검토자료7편TR-069 클라이언트 검토자료7편
TR-069 클라이언트 검토자료7편
 

Spring MVC

Editor's Notes

  1. JEE가 제공하는 다수의 기능을 지원하고 있기 때문에 JEE를 대체하는 프레임워크로 자리잡고있습니다. IOC : 기존엔 개발자들이 New연산자, 인터페이스 호출 등의 방식으로 객체의 인스턴스를 생성함으로써 인스턴스 생성 방법에 대한 제어권을 가지고있었는데 IOC란 이 제어를 개발자가아닌 컨테이너에게 반환한다는 개념. 인스턴스의 생명주기를 개발자가 아닌 컨테이너가 관리한다. DI : 스프링은 설정 파일이나 어노테이션을 통해 객체간의 의존관계를 설정할 수 있다. 따라서 객체들간의 느슨한 결합을 유지하고 직접 의존하고 있는 객체를 굳이 생성하거나 검색할 필요성이 없어진다. AOP : 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법. 문제를 해결하기 위한 핵심 사항과 전체에 적용되는 공통 사항을 기준으로 프로그래밍 함으로써 공통모듈을 여러 코드에 쉽게 적용할 수 있도록합니다. 경량 컨테이너 : 스프링은 객체를 담고있는 컨테이너로써 자바 객체의 생성과 소멸과 같은 라이프사이클을 관리.
  2. Spring 프레임워크는 위 그림에서 볼 수 있는 것과 같이 7개의 큰 부분으로 구성되어 있다. Spring Core 는 Spring 프레임워크의 바탕이 되는 IoC(또는 DI) 기능을 지원하는 영역을 담당하고 있다. BeanFactory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다. Spring Context 는 Spring Core 바로 위에 있으면서 Spring Core에서 지원하는 기능외에 추가적인 기능들과 개발을 좀 더 쉽게 할 수 있도록 지원하고 있습니다 Spring DAO 는 JDBC 기반의 DAO개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 지원하고 있다.. Spring ORM ORM : 관계형 데이터 베이스 테이블과 객체 사이의 Mapping을 처리해주는것. 쉽게, SQL 작성없이 간단한 매핑설정으로 DB테이블 데이터를 JAVA 객체로 전달받을 수 있는 것. 은 Object Relation Mapping 프레임워크인 Hibernate, Ibatis 등과의 결합을 지원하기 위한 기능이다. Spring ORM을 이용할 경우 Hibernate, IBatis, 프레임워크와 쉽게 통합하는 것이 가능하다. Spring AOP 는 Spring 프레임워크에 Aspect Oriented Programming을 지원하는 기능이다. Spring Web 은 Web Application 개발에 필요한 Web Application Context와 Multipart Request등의 기능을 지원하고 struts와 같은 프레임워크의 통합을 지원하는 부분을 담당한다. Spring Web MVC는 Spring 프레임워크에서 Model-View-Controller를 지원하기 위한 기능이다. Struts가 담당했던 기능들을 Spring Web MVC를 이용하여 대체하는 것이 가능하다.
  3. DispatcherServlet은 클라이언트의 요청을 받아 Controller를 검색하고 Controller의 처리 결과인 ModelAndView를 전달받아 View를 출력해주는 역할. 기본적으로 /WEB-INF/ 디렉토리에 서블릿이름-servlet.xml 파일을 설정파일로 사용한다. 설정파일을 한 개 이상 사용하고 싶거나 특정 이름으로 설정해주고 싶은 경우 &amp;lt;init-param&amp;gt;태그로 contextConfigLocation을 설정해 준다. 설정 파일은 콤마, 공백문자, 줄바꿈, 탭, 세미콜론 중 하나로 구분한다. &amp;lt;servlet-mapping&amp;gt; : 클라이언트의 요청에 따라 &amp;lt;servlet-name&amp;gt; 이름의 서블릿을 호출하라는 의미. 웹 컨테이너 시작 시 ContextLoaderListener 실행된다 ApplicationContext 설정 : 서로 다른 DispatcherServlet이 공통 빈을 필요로 할 경우, ContextLoderListener를 사용하여 공통으로 사용될 빈을 설정. ContextLoderListener를 listener로 등록하고 contextConfigLocation의 컨텍스트 파라미터를 이용하여 공통으로 사용될 빈 정보를 담고 있는 설정 파일 목록을 지정. ContextLoderListener는 contextConfigLocation 컨텍스트 파라미터를 명시하지 않으면 /WEB-INF/applicationContext.xml을 설정파일로 사용하고 웹 어플리케이션이 시작할 때 자동으로 루트 어플리케이션 컨텍스트를 만들고 초기화해준다. ContextLoderListener가 생성하는 WebApplicationContext는 루트 컨텍스트이고 DispatcherServlet이 생성하는 WebApplicationContext는 루트 컨텍스트를 부모로 사용하는 자식 컨텍스트이다. 자식은 루트가 제공하는 빈을 사용할 수 있기 때문에 각각의 DispatcherServlet이 공통으로 사용하는 빈을 ContextLoderListener를 이용하여 설정.
  4. 클래스에 스테레오 타입 어노테이션을 붙이면 해당 클래스가 컴포넌트 스캔의 대상이된다. Component : 기본 스트레오 타입. Controller : MVC에서 컨트롤러에 사용 Service : 서비스 계층의 클래스에서 사용, 주로 Business Object에서 사용 Repository : Data Access Object 에서 사용됨.
  5. &amp;lt;context:component-scan/&amp;gt;은 자바 클래스 패키지를 스캐닝하여 스프링 어노테이션에 따라 적합하게 빈 정의와 관계를 설정하는 태그. 기본적으로 base-package라는 속성에 명시된 패키지를 포함한 하위 패키지의 자바 클래스들을 스캐닝 하여 스테레오 타입 어노테이션이 적용된 클래스들을 검색하여 빈으로 자동 등록한다. 따라서 XML 설정 파일에 다양한 빈 정보를 추가하지 않아도 된다. Base-package 에 포함된 자바 클래스를 스캐닝하는데 있어서 필터링을 추가할 수 있다. Annotation : expression에 지정된 어노테이션이 클래스에 적용 되었는지 여부에 따라 포함/미포함 Assignable : expression에 지정된 타입으로 클래스가 할당 가능한지의 여부 Exclude-filter 타입으로 regex이 설정되어 있으므로 expression에 지정되어있는 정규식 표현식에 매칭되는 경우 스캔대상에서 제외.
  6. Bean은 정의 할때 scope를 지정해 줄 수있다. 5가지의 scope를 제공한다.
  7. Client의 요청이 DispatcherServlet에 전달. HandlerMapping에 클라이언트 요청을 처리할 컨트롤러 객체를 구함. Controller에 처리요청. Controller를 요청을 처리하고 처리 결과 정보를 담은 ModelAndView를 리턴. ViewResolver로부터 응답 실행 결과를 보여줄 뷰 객체를 구함. 뷰는 클라이언트에 전송할 응답을 생성.
  8. HTTP 요청정보를 통해 이를 처리할 컨트롤러를 찾아주는 기능. BeanNameUrl : 디폴트.
  9. DispatcherServlet은 이러한 HandlerMapping을 통해 컨트롤러를 찾아옵니다. 다음은 컨트롤러에 대해
  10. Spring MVC가 지원하는 컨트롤러의 종류는 4가지이고 각 컨트롤러를 DispatcherServlet에 연결해 주는 어탭터가 하나씩 있어야 하므로 핸들러 어댑터도 4개이다. SimpleServletHandlerAdapter 를 제외한 3개의 핸들러 어댑터는 DispatcherServlet 에 디폴트 전략으로 설정되어 있다.
  11. 핸들러 인터셉터는 DispatcherServlet 이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터다. 서블릿 필터와 유사한 개념. 핸들러 매핑은 DispatcherServlet 으로 부터 매핑 작업을 요청받으면 그 결과로 핸들러 실행 체인(HandlerExecutionChain) 을 돌려준다. 이 핸들러 실행 체인은 하나 이상의 핸들러 인터셉터를 거쳐서 컨트롤러가 실행될 수 있도록 구성되어 있다. 핸들러 인터셉터를 전혀 등록해주지 않았다면 바로 컨트롤러가 실행된다. 반면에 하나 이상의 핸들러 인터셉터를 지정했다면 순서에 따라 인터셉터를 거친 후에 컨트롤러가 호출된다.
  12. 핸들러 매핑이 URL로부터 컨트롤러를 찾아주는 것처럼 뷰이름으로부터 사용할 뷰 오브젝트를 찾아준다. ViewResolver 인터페이스를 구현해서 만들어진다.
  13. 컨트롤러의 작업 중에 발생한 예외를 어떻게 처리할 지 결정한다. HandlerExceptionResolver가 등록된 경우 Exception이 발생하면 DispatcherServlet은 해당 Exception을 처리할 수 있는지 확인한다. 만약 Exception응ㄹㅇ 처리해주는 리졸버가 있으면 exception은 리졸버가 처리한다. resolveException() 메소드의 리턴타입은 ModelAndView이다. 예외에 따라서 사용할 뷰와 그안에 들어갈 내용을 담은 모델을 돌려주도록 되어있다. AnnotationMathodHandler :