[eclipse]_Spring 설치 및 구현

2022. 12. 9. 15:58[Spring]_/[Eclipse]

728x90
반응형

개요

Intellij를 사용하다가 다음 프로젝트가 Eclipse 환경으로 인해

Eclipse 에 spring 최신버전을 설치하는 과정 설명

 

환경 

Eclipse 최신버전 2022-09 (4.25.0)

Tomcat - 10.0.23  v

maven Artifact ID : maven-archetype-webapp 1.4v

Spring 6.0.2 ver

 

특이사항

Spring 최신버전부터는 servlet 버전으로 인하여 tomcat version 을 10이상으로 설치하여야 합니다.

다음 포스트 참고

https://yn971106.tistory.com/161

 

[Eclipse]_Spring 최신 버전 servlet 오류(feat.jakarta error)

개요 Intellij를 사용하다가 다음 프로젝트가 Eclipse 만 사용가능하다 하여 환경 구현 실습 연습을 위해 가장 최신버전 채택하여 진행중 만난 오류사항 및 해결방법 설명 환경 Eclipse 최신버전 2022-09

yn971106.tistory.com

 

하위 포스트의 후속내용입니다.

https://yn971106.tistory.com/160

 

[Eclipse]_eclipse maven-web 프로젝트 생성 (feat.tomcat)

개요 Intellij를 사용하다가 다음 프로젝트가 Eclipse 만 사용가능하다 하여 새로 프로젝트 생성 도중 만난 에러사항 해결 방법 및 설치방법 설명 환경 Eclipse 최신버전 2022-09 (4.25.0) Tomcat - 9.0.62 v maven

yn971106.tistory.com


연동과정

1. pom.xml 수정

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>6.0.2</version>
</dependency>

maven기반으로 dependency를 추가해 줍니다.

webmvc 하나만 의존성을 걸어도 연관되어 있는 다른 라이브러리가 다운로드 됩니다.

연관된 6가지의 라이브러리가 자동 의존성 추가가 됩니다.


2. web.xml 수정

프로젝트가 실행되면 먼저 web.xml이 읽히게 됩니다.

해당 파일에

DispatcherServlet 설정을 해줍니다.

<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.view</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
  • servlet-name : 서블릿 이름 지정
  • contextConfigLocation : 해당 servlet dispatcher 설정 파일위치 지정
  • param-value : 설정 파일 실제 위치
  • servlet-mapping : servlet 이름과 같은 디스패처의 url 형식 매핑을 설정합니다.
  • url pattern : / 의 경우 localhost 이후 / 의 url을 지정하는 의미입니다. 
  • url pattern : do , view 의 경우 추후 ajax 혹은 fetch 통신 시 controller 에 .do 나 .view 와 같은 url을 보낼때 사용하기 위해 지정합니다.

welcome-file-list : 처음 서버가 열리고 맞이하는 첫 페이지를 지정할 수 있습니다.


3. dispatcher-servlet.xml 생성 및 수정

param-value의 위치에 해당 dispatcher-servlet.xml 이라는 폴더를 생성합니다.

저의 경우 /WEB-INF/spring/ 의 경로에 생성하였습니다.

jsp 는 제가 별도 만든 폴더입니다.

해당 파일 수정은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">                
 

 
 <context:component-scan base-package="com.yoon"/>
 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
<!--         <property name="order" value="1"/> -->
        <property name="contentType" value="text/html; charset=UTF-8"/>
    </bean>
    
      
</beans>
  • context:component-scan : 컴포넌트 스캔을 할 패키지를 지정합니다.

저는 컨트롤러를 다음과 같은 경로로 생성하였습니다.

 

java/com/yoon 하위의 모든 폴더를 bean으로 등록할 예정이기 때문에

base-package 를 "com.yoon" 으로 지정하였습니다.

 

  • viewResolver : jsp 와 같은 view를 보여줄 위치를 지정합니다.

prefix : 앞의 경로 지정

suffix : 확장자와 지정

 

저의 경우 jsp 파일을 /WEB-INF/jsp/ 에 둘 것이기 때문에 prefix 에 해당 경로를 지정하고

파일은 jsp 파일이기 때문에 suffix 에 jsp 를 지정하였습니다.

 


4. Controller 생성

bean 스캔이 되는 부분에 다음과 같은 controller 생성

package com.yoon.menu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class menuController {
	
	@RequestMapping(value="/menu1", method=RequestMethod.GET)
    public String urlTest() {
        System.out.println("Testhere");
        return "/menu/menu1";    // JSP 경로
    }
	
}

5. view 생성

jsp 파일 생성하여 원하는 화면을 넣으면 됩니다.


6.테스트

 

welcome page

controller 지정된 url 입력 화면

 

정상 작동을 확인 할 수 있습니다.

감사합니다.


+@ 2022-12-19 추가 작성

 

tomcat 10 을 설치시 servlet 버전 도 이전 javax 가 아닌

jakarta servlet 을 사용해야 합니다.

 

tomcat 10 의 경우 jakarta servlet 이 내장되어 있습니다.

톰캣만 빌드해서 사용시 오류가 나지 않았으나,

 

maven build 시 jakarta 를 받아두지 않으면 오류가 납니다.

 

따라서 pom.xml 에 다음과같은 jakarta 를 설치합니다.

<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>

 

728x90
반응형