본문 바로가기

프로그래밍/JAVA & SPRING

[박재성] Spring 기반 웹 프로그래밍 4강 - spring mvc settings

반응형

스프링프레임워크에서 제공하는 mvc 를 이용해서

hellospringmvc를 출력하는 과정을 살펴본다.

 

먼저 spring mvc libarary를 프로젝트에 추가

spring 설정 파일 추가

Controller 추가한 다음에

jsp에서 hello spring mvc를 출력

 

1. spring mvc libarary를 프로젝트에 추가

https://mvnrepository.com/search?q=spring-webmvc

spring-webmvc로 검색

강좌에서의 버전은 4.0.5인데 5.1.3으로 설치해 본다.

pom.xml에 spring-webmvc dependency를 추가하고 메이븐 빌드를 한다.

F5 를 누르면 class path에 References Libraries가 추가된 것을 볼 수 있다.

 - spring-webmvc-5.13.RELEASE.jar

 - spring-aop-5.13.RELEASE.jar

 - spring-beans-5.13.RELEASE.jar

 - spring-core-5.13.RELEASE.jar

 - spring-jcl-5.13.RELEASE.jar

 - spring-context-5.13.RELEASE.jar

 - spring-expression-5.13.RELEASE.jar

 - spring-web-5.13.RELEASE.jar

여기서 우리가 추가한 것은 하나인데

의존관계에 있는 libarary까지 추가된 것을 볼 수 있다.

메이븐의 의존성 전의라는 지원기능때문에 그렇다.

 

2. spring mvc 관련 설정파일 추가

첫번째 설정 : 

web.xml에 모든 요청에 최초로 접근가능하도록 servlet 설정이 필요

spring에서 제공하는 DispatcherServlet을 활용해서 아래와 같이

slipp이라는 이름으로 지정하는데 모든 url에 접근 가능하도록

세팅을 해 놓고 있다.

 

<servlet>

  <servlet-name>slipp</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

</servlet>

 

<servlet-mapping>

  <servlet-name>slipp</servlet-name>

  <url-pattern>/</url-pattern>

</servlet-mapping>

 

spring mvc에서 기본적으로 찾게되는 설정파일은 

다음과 같은 컨벤션으로 설정파일을 로딩하게 된다.

 

servlet name이 slipp이니까 spring mvc가 최초 web application이 뜰때

WEB-INF/slipp-servlet.xml 파일을 찾아서 있으면 읽어서

spring mvc와 관련된 설정을 하게된다.

 

 

WEB-INF/slipp-servlet.xml 설정 파일을 만든다.

파일생성시 네임스페이스까지 정의한다.

context namespace와 XSD 선택

mvc namespace와 XSD 선택

 

첫번째로 설정하는 부분은 

mvc에서 controller에 해당하는 클래스를 로딩하기위해

모든 클래스를 컨트롤로 가져갈 필요는 없다. 특정 폴더만 인식시킬 수 있다.

<context:component-scan base-package="net.slipp.web" />

web패키지의 컨트롤러를 읽어들여서 url과 controller를 매핑하게 되는 것이다.

 

컨트롤러를 인식할때 어떤 방식으로 할거냐? 지정할 수 있다.

<mvc:annotation-driven /> 이렇게 설정하면

컨트롤러를 추가할때 annotation기반으로 지정할 수 있다.

하나의 url과 controller간의 매핑을 annotation 기반으로 한다는 것이다.

 

마지막으로 뷰에대한 설정인데

jsp에 대한 접근을 어떤식으로 할거냐?

<!-- 뷰에 대한 설정 - 어떤식으로 할거냐? -->

<bean id="viewResolver" 

 

class="org.springframework.web.servlet.view.InternalResourceViewResolver" 

  p:prefix="/"

  p:suffix=".jsp" />

p 네임스페이 추가하지 않으면 에러가 뜬다.

새로운 네임스페이스를 Namespaces에서 추가한다.

 

이렇게 하면 'spring mvc'를 사용할 수 있다

 

패키지(net.slipp.web)를 생성하고 클래스를 생성한다.

이 클래스(HomeController)를 컨트롤러로 인식하기 위해

@Controller 를 추가해준다.

 

컨트롤러 클래스에 메소드를 추가한다.

처음에 사이트를 접근했을때, 즉 http://localhost:8080/ 로 접근했을때

이 메소드로 요청이 들어오도록 매핑을 한다.

@RequestMapping("/") url매핑 

jsp 파일명 반환 (return "home")

 

이렇게 하면 컨트롤러 개발이 끝났다.

 

서버를 구동하고 프로젝트를 서버에서 실행해보자