리주의 프로그래밍 공부

RestController 본문

스프링(Spring) 공부

RestController

Leezu_ 2021. 1. 12. 09:38

지금까지 사용했던 @Controller 는 일반적으로 Client의 요청으로부터 View를 반환한다.

하지만 View가 아닌 Data를 반환해야하는 경우가 있는데, 이때에는 아래처럼 @ResponseBody를 사용할 수 있다.

@Controller
@RequestMapping("/")
public class HomeController {

    @RequestMapping("index")
      // Data를 반환하도록 도와주는 Annotation
    @ResponseBody
    public String index(){
    	return "Hello Index";
    }
}

 

물론 다른 방법도 있다.

기존 @Controller가 아닌 @RestController를 사용하면 된다.

 

RestController

    @Controller + @ResponseBody 라고 생각하면 된다. View가 아닌 Data를 반환할 때 사용한다.

위의 코드는 아래처럼 바뀔 수 있다.

@RestController
@RequestMapping("/api/notice/")
public class HomeController {

	@RequestMapping("index")
    public String index(){
    	return "안녕 Index";
    }
}

 

다만, 위의 코드를 그대로 썼을때에는 한글출력에 오류가 생기므로, .xml 파일에 다음 구문을 추가해줘야한다.

// 기존 코드 : <mvc:annotation-driven />
<mvc:annotation-driven>
	<mvc:message-converters> <!-- @ResponseBody로 String 처리할때 한글처리 -->
		<bean class="org.springframework.http.converter.StringHttpMessageConverter">
			<property name="supportedMediaTypes">
				<list>
					<value>text/html;charset=UTF-8</value>
				</list>
			</property>
		</bean>
	</mvc:message-converters>
</mvc:annotation-driven>

 

 

위 내용은 유튜브 뉴렉처 님의 스프링 MVC 32강 강의영상을 보고 개인적으로 작성한 글입니다.

'스프링(Spring) 공부' 카테고리의 다른 글

QueryString 입력  (0) 2021.01.13
JSON 출력  (0) 2021.01.12
RequestMapping  (0) 2021.01.08
DI를 Annotation으로 변경  (0) 2021.01.06
설정파일 분리하기  (0) 2021.01.05