본문 바로가기
Study/중앙정보처리학원과정

Spring RequestMapping과 GetMapping

by 얏옹이 2023. 2. 9.
반응형

현재 Spring 버전은 3.1.1 버전이다.

 

스프링 프레임워크에서는 @(Annotation)을 이용하여 URL Mapping을 설정해줄수있다.

 

기존의 JSP에서는 Properties라는 파일을 하나 생성해서 그걸 Web.xml에서 URL Mapping을 해달라고 설정을 별도로 해줬어야하는데 스프링은 @을 이용하여 처리해줄수있다.

 

많은 Annotation이 있지만 오늘은 URL 주소 Mapping에 사용되는 @RequestMapping과 @GetMapping 에 대해서 알아보겠다.

 

//컨트롤러 역활을 하는 클래스. 따라서 @Controller 어노테이션을 붙여주자.
@Controller
public class Test1Controller {
	//	RequestMapping의 속성
	//	value="요청주소"
	//	method="요청방식"
	//	method=RequestMethod.GET
	//	method=RequestMethod.POST
	//	method=RequestMethod.PUT
	
	@RequestMapping(value="/requestMethod1", method=RequestMethod.GET)
	public String requestMethod1(Model model) {
		
		model.addAttribute("m1","맥은 m1pro칩이지");
		return "test/resultView";
	}
}

 

컨트롤러 역활을 하는 클래스에 @Controller라고 Annotation을 붙여주고 그 하위 Method에 RequestMapping을 기재해주었다.

 

그럼 http://localhost:포트번호/ContextPath/requestMethod1을 브라우저에 입력하면 해당 메소드가 호출되면서 Test폴더의 resultView라는 JSP 파일에 값이 넘어가게 된다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>resultView Testcontroller</h1>
	<h2>${m1}</h2>
	<h2>${m2}</h2>
</body>
</html>

 

그럼 해당 JSP 파일에서는 ${m1}의 이름의 데이터값을 출력해주면 된다.

 

그럼 저렇게 해당 주소를 요청하게되면 우리가 Controller를 통해 넘긴 값이 정상적으로 잘 출력이 된다.

 

다음은 @GetMapping이다. 이건 Spring 버전 4.3.0 이상부터 추가된 Annotation이다. 따라서 먼저 Spring의 버전을 변경해줘야한다. Pom.xml에 들어가보면

 

 

이부분이있을것이다. 이부분이 현재는 3.1.1 RELEASE로 되어있을것이다. 이걸 수동으로 4.3.0이라고 수정해주고 저장을 누르면 이클립스 좌측 하단에 다운받는듯한 다운로드바가 나올것이다. 다운로드가 완료되면 버전 Up 된것이고.

 

다시 Controller 클래스로 돌아가서 

 

package com.mycom.app.test;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

//컨트롤러 역활을 하는 클래스. 따라서 @Controller 어노테이션을 붙여주자.
@Controller
public class Test1Controller {
	//	RequestMapping의 속성
	//	value="요청주소"
	//	method="요청방식"
	//	method=RequestMethod.GET
	//	method=RequestMethod.POST
	//	method=RequestMethod.PUT
	
	@RequestMapping(value="/requestMethod1", method=RequestMethod.GET)
	public String requestMethod1(Model model) {
		
		model.addAttribute("m1","맥은 m1pro칩이지");
		return "test/resultView";
	}
	
	//get요청방식 Spring 4.3.0 버전 이상부터 사용가능한 Annotation
	@GetMapping("requestMethod2")
	public String requestMethod2(Model model) {
		model.addAttribute("m2","아니야 맥은 신형 m2 pro칩이 최고지");
		return "test/resultView";
	}
}

 

@GetMapping을 이용한 Method를 추가해주었다. 4.3.0 이상에서만 사용가능하고 

 

import org.springframework.web.bind.annotation.GetMapping를 Import 해줘야 사용 가능하다.

 

그리고나서 URL에 requestMethod2를 요청하면

 

 

이렇게 ${M2}의 데이터값이 정상적으로 출력된다.

 

RequestMapping과 GetMapping의 동작원리는 같다. Get방식으로 처리해줄때는 RequestMapping의 Method 속성을 이용하여 Get방식으로 요청해주는것보다. GetMapping을 이용하여 좀더 코드를 단순화하고

해당 Annotation을 이용하면 좀더 명확하게 해당 Method가 Get방식으로 요청하는구나 라는걸 알수있다.

반응형