๋ฌธ์ ์ํฉ
Spring๋ก ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑ API๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ปจํธ๋กค๋ฌ ๋ฉ์๋์์ ์ ์์ธ ํฌ์คํธ id๊ฐ์ ๋ฐํํ๋ ค๊ณ ํ๋๋ฐ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
Unknown return value type: java.lang.Integer
์์ธ ๋ถ์
Spring์์ ์ปจํธ๋กค๋ฌ ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก View(MVC ํจํด์ View)์ ์ด๋ฆ์ ๋ฐํํ๋ค๊ณ ๊ฐ์ฃผํ๋ค. ์ฆ, ๋ฉ์๋์ ๋ฐํ ๊ฐ์ด String์ด๋ฉด, ๊ทธ ๊ฐ์ View์ ์ด๋ฆ์ผ๋ก ํด์๋๋ค.
@GetMapping("/home")
public String home() {
return "homePage";
}
์๋ฅผ ๋ค์ด ์ ์ฝ๋์์ "homePage"๋ View์ ์ด๋ฆ์ผ๋ก ํด์๋์ด์, Spring์ homePage.html
๋๋ homePage.jsp
๊ฐ์ ํ์ผ์ ์ฐพ์์ ๋ ๋๋งํ๋ค.
ํ์ง๋ง Integer์ ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ๋ฐํํ๋ ๊ฒฝ์ฐ, Spring์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ Unknown return value type ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
@ResponseBody
๋ @RestController
์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ์ฌ Spring์ด ๋ฐํ๋ ๊ฐ์ View์ ์ด๋ฆ์ด ์๋, ๋ฐ์ดํฐ๋ก ํด์ํ๊ณ HTTP ์๋ต ๋ณธ๋ฌธ์ ํฌํจ์์ผ ๋ฐํํ๋๋ก ํ๋ค.
• @ResponseBody
๋ฉ์๋์ ๋ฐํ๊ฐ์ HTTP ์๋ต ๋ณธ๋ฌธ์ ๊ทธ๋๋ก ํฌํจ์ํค๋๋ก ํ๋ค. ์ฆ, ๋ฐํ๋ ๋ฐ์ดํฐ๋ฅผ JSON ๋๋ XML ํ์์ผ๋ก ์ง๋ ฌํํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค.
@Controller
public class MyController {
@GetMapping("/example")
@ResponseBody
public String example() {
return "Hello, World!";
}
}
• @RestController
@Controller
์ @ResponseBody
๋ฅผ ๊ฒฐํฉํ ์ด๋
ธํ
์ด์
์ผ๋ก, ํด๋น ์ด๋
ธํ
์ด์
์ด ๋ถ์ ํด๋์ค ๋ด ๋ชจ๋ ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก @ResponseBody
๊ฐ ์ ์ฉ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.
@RestController
public class MyRestController {
@GetMapping("/example")
public String example() {
return "Hello, World!";
}
}