--- INDEX ---
| 1. Dispatcher Servlet | 2. legacy 프로젝트 생성 | 3. legacy 프로젝트 구조 | 4. 프로젝트 실행 |
| DS, 대장서블릿 연결, context |
도메인역순.도메인역순.앱이름 | java, resources webapp, view , xml파일들 |
@RequestMapping return |
1. Dispatcher Servlet
- 지금까지 우리가 한 방식으로는
- 요청마다 담당 서블릿이 있고 – 이 서블릿은 컨트롤러의 역할도 한다.
- 서블릿의 원래 역할은 – 요청을 받고 – 응답을 해주고 – 하는 것이다.
- 이제 서블릿은 원래의 그 역할만 하게 만들 것이다.
- 데이터를 뭉치고 처리하는 것은 컨트롤러에서 처리할 것이다.
- 앞으로는 서블릿은 서블릿으로 / 컨트롤러는 컨트롤러로 만들 것이다.
1-1 : 대장 서블릿
- ex) 지금은 짜장면 주문을 전문으로 받는 애가 있고, 탕수육 주문을 전문으로 받는 애가 있는 상황이다.
- 굳이 그럴필요없잖아요? 이제는 주문 전체를 관리하는 직원 한 명을 두고 처리하도록 해 줄 것이다.
대장 서블릿을 만들어서
들어오는 모든 요청을 받아가지고 처리하게 해줄 것이다.
처리한다는 내용은
지금 이런 요청 들어왔으니까 이 요청 담당자 컨트롤 누구 일해라 이런 식으로

대장 서블릿의 이름은
--- DispattcherServlet ---
1-2 : 대장 서블릿을 활용한 스프링의 전반적인 흐름 체크
- 어떤 대장 서블릿이 ( 디스패쳐서블릿이 ) – 컨트롤러들을 호출한다
- - 컨트롤러들을 태어나게 해 주기 위해서는 컨트롤러마다 태어날 때 필요한 것들 채워주어야 한다.
- 컨트롤러/서비스/dao 객체들을 만들어서 컨트롤러 태어날 때 넣어준다. ( 자동으로 )
- 그럼 우리는 작업하면서 직접 new () 해서 객체 만들일이 없다!
- 대장 서블릿은 객체들을 미리 다 만들어놓고 가지고 있다.
/member/login 요청이 들어온다면 ?
- 이 요청을 처리하는데 필요한 객체들을 뽑아서
- 객체들을 순서대로 배치해서 잘 흘러갈 수 있게 해준다.
- 멤버컨트롤러객체 / 멤버서비스객체 / 멤버dao객체 필요하구나. - 판단해서 뽑아와서 연결해준다.
- 여러 개의 객체를 조합하는 것을 spring 이 알아서 해준다.
- 이제 개발자가 할 일은?
- 대장 서블릿이 다룰 context 바구니에 어떤 객체들이 들어있어야 하는지 알려주어야 한다.
- = 어떤 객체를 가지고 있어야 하는지 알려주어야 한다.
- = 바구니에 필요한 객체들을 넣어주는 작업이 개발자가 할 일이다.

1-3 : 정리
- 모든 요청받아주는 대장 서블릿이 존재하고
- 요청에 맞게 필요한 객체들을 뽑아서 연결해서 작업시켜준다.
- 객체들을 가지고 있는 바구니 – context
- 객체들을 어떻게 가지고 있나?
- 특정 클래스를 통해서 [메서드/필드/생성자/어노테이션]등을 가져올 수 있고 ( private도 가능)
- 이것을 이용해서 객체를 만들어서 context 바구니에 가지고 있는다
- 즉, 우리가 만들어놓은 클래스/메서드/변수/어노테이션 등등 다 가져와서
- 필요한 작업에 맞게 뽑아서 연결해준다.
2. 프로젝트 생성해보기 ( spring legacy project )




3. 플젝 디렉토리 구조 구경하기
3-1 : src로 사용했던 ( java 파일들 넣어주던 곳 )

우리가 클래스 파일들(컨트롤러,서비스,다오) 작업했던 경로
- src 해주었던 폴더가 = 이거 구나 생각
java작업 여기다가 하면 된다..
3-2 : Source Folder 만들어서 최상단 경로로 인식 - Mybatis 설정해주었던 곳

mybatis관련 설정해주었던 것들 – 여기다가 작업
3-3 : Spring을 테스트해보는 공간

spring을 test 해보는 공간 – 당분간은 사용할 일 없을 것이다.
spring을 테스트할 때
어떤 정형화된 방법을 사용하니까 기본적인 방법을 만들어준 것이다.
3-4 : WebContent , webapp 으로 사용하던 프로젝트 최상단 경로 - webapp
- Spring 최상단 경로는 src/main/webapp 이다.
- /WEB-INF/views/home.jsp 요청하면 ㅡ 홈 화면 나온다.
- web-inf 하위에 views 도 자동으로 만들어준다~ 사람들이 많이 쓰니까

3-5 : 우리가 열심히 수정할 애들 4개

# servlet-context.xml에서 하는 작업
- 대장 서블릿이 관리하는 context에 대한 작업들
# root-context.xml에서 하는 작업
- 대장 서블릿도 결국엔 내 프로젝트 안에서 존재하는 직원
- 모든 직원이 사용하는 바구니 context에 대한 설정
# web.xml에서 하는 작업
- web application 과 관련된 설정
# pom.xml에서 하는 작업
- 웬만한 lib 다운받는 작업 진행
- build와 관련된 작업들 ,
- 현재 프로젝트 관련 모든 정보 작업들( version, compile 등)
- pom 이 무엇의 약자인지 보면 알 수 있다.

4. 프로젝트 실행해보기
4-1 : 프로젝트 생성할 때 - 3번째 경로에 사용한 - 앱이름이 - 프로젝트네임으로 인식된다!

web.xml에서 jstl사용하는 태그 없애주면 ( 아직 jstl연결 안함 )
화면이 잘 나온다
잘 나오는 이유를 알아보자
4-2 : app01 요청을 처리하는 애가 있어서 화면이 나오는 것일 텐데 누구인가?
# 여기 안에 우리가 만들지 않은 패키지와 컨트롤러가 만들어져 있다..

이 파일이 어떻게 보여준 것인지 체크해보자.
어노테이션의 value 값 / 이걸로 요청을 받은 것이고
home()이라는 메서드 하나 존재한다.
return “home” 이라고 해주면 처리해준다.
얘가 화면을 보여주는구나

지금 수준에서는
app01/ --- 요청은 --- @RequestMapping 과 관련이 있고
return home 은 --- 응답해주는 거와 관련이 있구나
정도로 체크
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 9월' 카테고리의 다른 글
| 22.09.09 - [ Spring ] bean등록 , ViewResolver , 요청 방식에 따라 처리하기, 파라미터 받기 , 데이터 담기 , interface 타입으로 받기 (0) | 2022.09.15 |
|---|---|
| 22.09.08 - [ Spring ] @Component , @Autowired , injection , IoC 와 DI (0) | 2022.09.15 |
| 22.09.06 - [ Mybatis ] - 게시글 검색, 검색 게시글 페이징처리, 동적sql (1) | 2022.09.08 |
| 22.09.05 - [ 11차 시험! - 인터페이스 구현 ] (0) | 2022.09.07 |
| 22.09.02 - [ Mybatis ] 게시글 - { 작성, 전체조회, 페이징처리 } 작업 (0) | 2022.09.07 |