Home > Spring > (Spring) - Spring MVC 프로젝트 생성 및 설정 하기

(Spring) - Spring MVC 프로젝트 생성 및 설정 하기
tomcat spring
  • IntelliJ에서 진행한다.

1. Maven 프로젝트 생성

  • [New Project] -> [Maven Archetype] 선택 후
    1. Name 설정 (프로젝트 이름)
    2. JDK 버전 설정
    3. Archetype은 maven-archetype-webapp 선택
  • 정상적으로 완료되면 아래와 같은 화면이 나온다.


2. pom.xml dependency 설정

  1. pom.xml 파일에 아래의 내용을 추가해준다.
     <properties>
         <org.springframework-version>5.1.9.RELEASE</org.springframework-version>
     </properties>
        
     <dependencies>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
             <version>${org.springframework-version}</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-webmvc</artifactId>
             <version>${org.springframework-version}</version>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>3.1.0</version>
         </dependency>
     </dependencies>
    
    • IntelliJ에서는 pom.xml에 설정을 해놓으면 자동으로 해당 라이브러리를 다운받는다.
  2. reload를 해준다.
    • IntelliJ가 우측 상단에 위의 버튼을 띄워준다.
  • 정상적으로 완료되면 아래와 같이 라이브러리가 다운된다.


3. WebApplicationInitializer 구현 - 코드 기반의 웹 애플리케이션 설정(SpringServletContainerInitializer)

  1. src/main 아래에 java 디렉토리 생성 후 com.example.myproject 패키지를 추가한다.

  2. myproject 디렉토리 아래에 MyWebApplicationInitializer 클래스와 config 디렉토리를 생성하고, config 디렉토리 아래에 DispatcherConfig 클래스를 생성한다.
  3. MyWebApplicationInitializer에 아래의 코드를 작성한다.
     public class MyWebApplicationInitializer implements WebApplicationInitializer 
     {
         @Override
         public void onStartup(ServletContext servletContext)
         {
             AnnotationConfigWebApplicationContext dispatcherContext
                     = new AnnotationConfigWebApplicationContext();
             dispatcherContext.register(DispatcherConfig.class);
             ServletRegistration.Dynamic dispatcher
                     = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherContext));
    
             dispatcher.addMapping("/");
             dispatcher.setLoadOnStartup(1);
         }
     }
    
  4. DispatcherConfig에 아래의 코드를 작성한다.
     @Configuration
     @ComponentScan(basePackages = "com.example.myproject")
     @EnableWebMvc
     public class DispatcherConfig implements WebMvcConfigurer
     { 
         // 뷰 리졸버(ViewResolver)를 설정하기 위한 메소드이다.
             // 이 메소드는 컨트롤러에서 반환된 문자열 기반의 뷰 이름을 실제 뷰 구현으로 변환하여 렌더링을 수행할 수 있도록 해준다. 
             // @RestController만 사용한다면 해당 메소드를 오버라이드할 필요가 없다.
         @Override
         public void configureViewResolvers(ViewResolverRegistry registry) {
             InternalResourceViewResolver resolver 
                 = new InternalResourceViewResolver();
             resolver.setPrefix("/WEB-INF/views/");
             resolver.setSuffix(".jsp");
             registry.viewResolver(resolver);
         }
     }
    
  • (SpringServletContainerInitializer 관련 참고)
    • spring-web JAR 파일의 /META-INF/services 경로에 jakarta.servlet.ServletContainerInitializer 파일이 있고, SpringServletContainerInitializer 클래스가 적혀있다.
    • spring-web JAR 파일의 /org/springframework/web 경로에 SpringServletContainerInitializer 클래스와 WebApplicationInitializer 인터페이스가 있다.


4. 테스트를 위한 컨트롤러와 기본 페이지 작성

  1. myproject 디렉토리 아래에 HelloController 클래스를 생성하고 아래의 코드를 작성한다.
     @Controller
     public class HelloController 
     {
         @GetMapping("/hello")
         public String hello()
         { 
             return "home"; 
         }
     }
    
  2. src/main/webapp/WEB-INF 아래에 views 디렉토리를 생성하고, views 디렉토리 아래에 home.jsp 파일을 생성하고 아래의 내용을 작성한다.
     <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     <html>
     <head>
         <title>Title</title>
     </head>
     <body>
         Hello Page !
     </body>
     </html>
    

5. Tomcat 설정

  • war 파일을 만들고, 이것을 서버에 복사해서 배포하는 과정이 번거로운데, IntellJ나 이클립스 같은 IDE는 이 부분을 편리하게 자동화해준다.
    • Intellij에서 Tomcat plugin은 Ultimate 버전에서 사용할 수 있다.
    • Community 버전에서는 Smart Tomcart와 같은 Tomcat 관련 플러그인을 설치해서 사용해야 한다.
  1. Tomcat 설치 (참고)

  2. Smart Tomcat 플러그인 설치
    • [Settings]의 [Plugin]에 들어가서 Smart Tomcat 설치한다.
  3. IntelliJ 우측 상단의 [Current File] -> [Edit Configurations] 클릭
  4. 좌측 상단에 + 버튼 눌러서 Smart Tomcat 선택하고, 아래와 같이 설정
    • Tomcat server : 설치되어 있는 Tomcat 폴더를 선택
    • Context path : / 로 설정


6. Tomcat 실행 후 확인

  • 브라우저에서 http://localhost:8080/hello 로 들어가서 확인해보자.

참고 자료

https://www.inflearn.com/questions/120816/tomcat-server%EB%93%B1%EB%A1%9D-%EC%8B%9C-configuration%EC%97%90-tomcat%EC%9D%B4-%EC%97%86%EC%96%B4%EC%9A%94 https://velog.io/@youjung/Intellij-IDEA-Community-Edition%EC%97%90%EC%84%9C-Tomcat-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 https://blog.naver.com/leejunga-0409/220738921894