[์Šคํ”„๋ง MVC] - 13. ์š”์ฒญ ๋งคํ•‘ / ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ

2023. 2. 16. 16:36ยทSpring/Spring MVC

 

์š”์ฒญ ๋งคํ•‘

 

@RestController
public class MappingController {

    @RequestMapping("/hello-basic")
    public String helloBasic() {
        return "OK";
    }

 

@RestController

 

@Controller ๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์ด String ์ด๋ฉด ๋ทฐ ์ด๋ฆ„์œผ๋กœ ์ธ์‹๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ทฐ๋ฅผ ์ฐพ๊ณ  ๋ทฐ๊ฐ€ ๋žœ๋”๋ง ๋œ๋‹ค.

 

@RestController ๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ๋ทฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋ฐ”๋กœ ์ž…๋ ฅํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ok ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

@RequestMapping("/hello-basic")


/hello-basic
URL ํ˜ธ์ถœ์ด ์˜ค๋ฉด ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ๋งคํ•‘ํ•œ๋‹ค.

 

@RequestMapping ์— method ์†์„ฑ์œผ๋กœ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด HTTP ๋ฉ”์„œ๋“œ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ˜ธ์ถœ๋œ๋‹ค.

 

 

@RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET)

 

ํŠน์ • HTTP ๋ฉ”์„œ๋“œ ์š”์ฒญ๋งŒ ํ—ˆ์šฉ

 

/**
 * ํŽธ๋ฆฌํ•œ ์ถ•์•ฝ ์• ๋…ธํ…Œ์ด์…˜ 
 * @GetMapping
 * @PostMapping
 * @PutMapping
 * @DeleteMapping
 * @PatchMapping
 */

 

 

PathVariable(๊ฒฝ๋กœ ๋ณ€์ˆ˜) ์‚ฌ์šฉ

 

@GetMapping("/mapping/users/{userId}/orders/{orderId}")
public String mappingPath(@PathVariable String userId, @PathVariable String orderId) {
    log.info("mapping userId={},oderId={}",userId,orderId);
    return "OK";

@PathVariable - ๋ณ€์ˆ˜์ง€์ • 

mappingPath - ๋งค์นญ ๋˜๋Š” ๋ถ€๋ถ„์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์กฐํšŒ

 

 

 

 

ํŠน์ • ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ๊ฑด ๋งคํ•‘

 

@GetMapping(value = "/mapping-param", params = "mode=debug")
public String mappingParam() {
    log.info("mappingParam");
    return "OK";
}

 

 

 

 

 

 

 

 

๋ฏธ๋””์–ด ํƒ€์ž… ์กฐ๊ฑด ๋งคํ•‘ - HTTP ์š”์ฒญ Content-Type, consume

 

@PostMapping(value = "/mapping-consume", consumes = "application/json")

 

HTTP ์š”์ฒญ์˜ Content-Type ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋””์–ด ํƒ€์ž…์œผ๋กœ ๋งคํ•‘ํ•œ๋‹ค.

 

 

 

๋ฏธ๋””์–ด ํƒ€์ž… ์กฐ๊ฑด ๋งคํ•‘ - HTTP ์š”์ฒญ Accept, produce

 

@PostMapping(value = "/mapping-produce", produces = "text/html")

 

HTTP ์š”์ฒญ์˜ Accept ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋””์–ด ํƒ€์ž…์œผ๋กœ ๋งคํ•‘ํ•œ๋‹ค.

 

 

HTTP ์š”์ฒญ - ๊ธฐ๋ณธ, ํ—ค๋” ์กฐํšŒ

 

@RequestMapping("/headers")
public String headers(HttpServletRequest request,
                      HttpServletResponse response,
                      HttpMethod httpMethod,
                      Locale locale,
                      @RequestHeader MultiValueMap<String, String> headerMap,
                      @RequestHeader("host") String host,
                      @CookieValue(value = "myCookie", required = false) String cookie
                      ) 

 

MultiValueMap

 

MAP๊ณผ ์œ ์‚ฌํ•œ๋ฐ, ํ•˜๋‚˜์˜ ํ‚ค์— ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.


HTTP header, HTTP
์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ฐ™์ด ํ•˜๋‚˜์˜ ํ‚ค์— ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

 

 

HTTP ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ - @ModelAttribute

 

 

@RequestParam String username;
@RequestParam int age;
HelloData data = new HelloData();
data.setUsername(username);
data.setAge(age);

 

์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ์ฒด์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ธฐ

 

์Šคํ”„๋ง์€ ์ด ๊ณผ์ •์„ ์™„์ „ํžˆ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” @ModelAttribute ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

 

@ResponseBody
@RequestMapping("/model-attribute-V1")
public String modelAttributeV1(@ModelAttribute HelloData hellodata){
    
    log.info("username={},age={}",hellodata.getUsername(),hellodata.getAge());

    return "OK";
}

 

@ModelAttribute 

์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ์ฒด์— ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค 

 

์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„์œผ๋กœ HelloData ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.

 

 

ํ”„๋กœํผํ‹ฐ

 

๊ฐ์ฒด์— getUsername() , setUsername() ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด, ์ด ๊ฐ์ฒด๋Š” username ์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

@Conroller ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ชฉ๋ก์€ ๋‹ค์Œ ๊ณต์‹ ๋ฉ”๋‰ด์–ผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
> https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-

 


> @Conroller ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต ๊ฐ’ ๋ชฉ๋ก์€ ๋‹ค์Œ ๊ณต์‹ ๋ฉ”๋‰ด์–ผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
> https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-

 

 

 

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

์Šคํ”„๋ง MVC 1ํŽธ - ๋ฐฑ์—”๋“œ ์›น ๊ฐœ๋ฐœ ํ•ต์‹ฌ ๊ธฐ์ˆ  - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ชจ๋“  ์›น ๊ธฐ์ˆ ์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ดํ•ดํ•˜๊ณ , ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง MVC์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋” ๊นŠ์ด์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., -

www.inflearn.com

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring > Spring MVC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์Šคํ”„๋ง MVC] - 15. HTTP ์‘๋‹ต / HttpMessageConverter / ArgumentResolver  (0) 2023.02.17
[์Šคํ”„๋ง MVC] - 14. HTTP message body ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์š”์ฒญ  (0) 2023.02.16
[์Šคํ”„๋ง MVC] - 12. ๋กœ๊ทธ / SLF4J / Logback  (0) 2023.02.16
[์Šคํ”„๋ง MVC] - 11. @Controller / @RequestMapping  (0) 2023.02.15
[์Šคํ”„๋ง MVC] - 10. DispatcherServlet / ํ•ธ๋“ค๋Ÿฌ ๋งคํ•‘๊ณผ ํ•ธ๋“ค๋Ÿฌ ์–ด๋Œ‘ํ„ฐ  (0) 2023.02.15
'Spring/Spring MVC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์Šคํ”„๋ง MVC] - 15. HTTP ์‘๋‹ต / HttpMessageConverter / ArgumentResolver
  • [์Šคํ”„๋ง MVC] - 14. HTTP message body ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์š”์ฒญ
  • [์Šคํ”„๋ง MVC] - 12. ๋กœ๊ทธ / SLF4J / Logback
  • [์Šคํ”„๋ง MVC] - 11. @Controller / @RequestMapping
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[์Šคํ”„๋ง MVC] - 13. ์š”์ฒญ ๋งคํ•‘ / ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”