Skip to content

Latest commit

ย 

History

History
70 lines (55 loc) ยท 2.35 KB

File metadata and controls

70 lines (55 loc) ยท 2.35 KB

1.Controller

MVC (Model-View-Controller) ํŒจํ„ด์—์„œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , 
๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ, ๋ทฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. 

2.Controller ์—ญํ• 

2-1.์š”์ฒญ ๋งคํ•‘

ํŠน์ • URL ํŒจํ„ด์— ๋Œ€ํ•œ HTTP ์š”์ฒญ์„ ๋ฉ”์„œ๋“œ์™€ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
@RequestMapping, @GetMapping, @PostMapping ๋“ฑ์˜ ์• ๋…ธํ…Œ์ด์…˜์„
์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

2-2.๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ํ˜ธ์ถœ

์„œ๋น„์Šค ๊ณ„์ธต์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ˜ธ์ถœํ•˜์—ฌ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋น„์Šค ํด๋ž˜์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2-3.๋ชจ๋ธ ๋ฐ์ดํ„ฐ ์ค€๋น„

์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ทฐ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
Model ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ทฐ์— ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

2-4.๋ทฐ ์„ ํƒ

์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋ Œ๋”๋งํ•  ๋ทฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋ทฐ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜, @ResponseBody๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์‘๋‹ต ๋ณธ๋ฌธ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

3.Controller ์˜ˆ์ œ

3-1.@Controller

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

@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }
}

3-2.@RestController

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingRestController {

    @GetMapping("/api/greeting")
    public Greeting greeting(@RequestParam(name="name", required=false, defaultValue="World") String name) {
        return new Greeting("Hello, " + name);
    }
    
    public static class Greeting {
        private String message;

        public Greeting(String message) {
            this.message = message;
        }

        public String getMessage() {
            return message;
        }
    }
}