2020. 9. 2. 17:30ㆍ개발공부/Spring
#Spring #MVC #개발환경 설정
1. MVC2
Spring 특성들인 IoC(제어의 역행)과 DI(의존성 주입)을 Maven 프로젝트로 구현해보았다. 이제 Eclipse 개발환경에 Spring Legacy
를 설정하고 MVC 구조의 원리를 배웠다. MVC는 Model, View, Controller로 Spring Framework의 작동 구조이다. JSP에선 비교적 단순한 Model 1 방식을 썼다면 Spring에선 Model2 방식을 차용한다.
- MVC 단계별 기능
- Browser : 클라이언트가 입력 또는 클릭으로 요청사항을 전달
- Controller : 단일 수신 기능으로 MVC2 구조에서 모든 요청은 Contoroller로 귀결되고 커맨드를 내리는 Center
- Service : 요청사항을 받아 처리하는 일꾼. 요청이 로그인이라면 로직으로 결과를 처리한다.
- DAO : DB에 접근해 정보를 읽고 빼온다.
- View : 사용자가 보는 화면 구현. 로그인 성공 혹은 실패 창을 보여줌.
Controller가 중요한 기능을 맡고 있는데, 사실 Browser에서 Controller 전까지 Spring이 자동으로 수행하는 단계도 있다. 아래의 그림을 참고한다. 모든 요청은 DispatcherServlet
이란 아이가 다 받는다. JSP의 FrontController로 대응된다. HandlerMapping 과 Adapter의 역할은 HTTP 요청정보를 토대로 Controller를 찾아주고 실행해준다.
ViewResolver
는 Controller가 약속한 문자열을 입력해주면 View에게 실행 전달을 내리는 역할을 한다.
2. Eclipse 개발환경 구축
** 1) Install**
서버 구동을 위해 Tomcat v9.0을 받아준다. Spring Tool은 Help -> Marketplace -> Spring Stalone 을 Install 해준다.
** 2) Project & Server Setting**
File -> New -> Spring Legacy Project -> ProjectName 설정 -> Templates: Spring MVC Project 설정 -> Next -> Maven 프로젝트 만들 때 정한 Artifact ID (com.spring.web) -> Finish Server Make New Server -> Server Locations: Use Tomcat installation(톰캣 다운로드로 변경 가능) 체크 -> Server Options: Publish module contexts to seperate XML fliles(XML 파일들을 구분하기 위해 모듈생성) 체크 -> Servers 내 생성된 Tomcat v9.0... 우클릭 -> Add and Remove -> 사용할 프로젝트 Add
** 3) Project 내 폴더 기능**
** - src -> webapp -> resource :** 실행하면 src/main/resources(Spring 설정파일) 에 있는 파일이 들어옴. CSS, HTML, IMG 형식의 파일 관리
** - WEB-INF -> classes :** 배포할 때 Java 파일 들어옴
** - WEB-INF -> spring -> root-context.xml :** DB 관련 설정
** - views :** jsp 파일 관리
** - web.xml : 웹의 기능 설정
** - pom.xml :** 웹 배포 관리
** - Servers -> server.xml -> URI 시작할 때 "/" 절대경로 시발점이 되는 Web2 or Web 설정가능 ( xml 파일 맨 아래 줄에 있음)
** 4) pom.xml update**
Java와 Spring 버전 업그레이드 반영이 돼있지 않은 pom.xml 코드를 업데이트 해준다. version 정보는 대부분 실제 값 대신 jstl로 써져 있어 최초 초기화 된 부분들만 바꿔주면 된다. 끝난 뒤엔
Alt + F5
를 입력해 업데이트를 적용시킨다.
'개발공부 > Spring' 카테고리의 다른 글
[Spring] - 요청 처리(@Request/Get/PostMapping) (0) | 2020.09.08 |
---|---|
[Spring] - MVC2 구조 구현 (0) | 2020.09.03 |
[Spring] - DI _자동 객체 주입(@; Annotation) (0) | 2020.09.02 |
[Spring] - DI(Dependency Injection) (복습) (0) | 2020.08.31 |
[Spring] - Maven 방식 이해하기 (복습) (0) | 2020.08.26 |