본문 바로가기

Spring

RequestMapping , GetMapping , PostMapping

반응형

RequestMapping 은 클래스 레벨에서 사용.

이 annotation은 클래스와 메서드 수준에서 모두 사용할 수 있다.
대부분의 경우 메소드 레벨에서 애플리케이션은 HTTP 메소드 특정 변형 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 또는 @PatchMapping 중 하나를 사용하는 것을 선호.

GetMapping 은 메소드에만 적용.

HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation.
주소에 파라미터가 노출 됨.
@RequestMapping(method = RequestMethod.GET, path = "/getMethod")  같은 형태.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
@RestController //Controller 라는 것을 명시
@RequestMapping("/api"// localhost:8080/api 가 매칭
public class GetController {
 
    @RequestMapping(method = RequestMethod.GET, path = "/getMethod"//localhost:8080/api/getMethod
    public String getRequest(){
            return "Hi getMethod";
            //@RequestMaping인데 method를 설정해줌으로 주소 하위 메소드로 들어감
            //여기서 return 한 것이 웹에 띄워짐
            //요청이 들어오면 이 안으로 옴
    }
 
 
    @GetMapping("/getParameter"//localhost:8080/api/getParameter?id=1234&password=abcd 물음표 뒤부터가 파라미터터
   public String getParameter(@RequestParam String id, @RequestParam String password){
 
        //만약에 여기서 password라는 변수가 쓰인다면 매개변수는 다른 이름으로 password를 받아야함.
        //그렇게 되면 매핑이 안되므로 @RequestParam(name = "password") pwd이렇게 해주면
        // 들어오는 인자는 password라는 이름으로 매핑될거야 라는 뜻.
        System.out.println("id :"+id);
        System.out.println("password :"+password);
 
        return id+password; //여기서 return 한 것들이 web에 띄워짐
 
    }
 
    //localhost:8080/api/getMultiParameter?account=abc&email=study@gmail.com&page=10
    @GetMapping("/getMultiParameter")
    public SearchParam getMultiParameter(SearchParam searchParam){
        System.out.println(searchParam.getAccount());
        System.out.println(searchParam.getEmail());
        System.out.println(searchParam.getPage());
        //{ "account" : "", "email" : "", "page" : 0} 형태로 바꿔주기 위해 객체리턴
        //기본적으로 gson 내포하므로 객체 리턴한다면 기본적으로 json 리턴
        return searchParam;
 
 
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

 

POST Method 는 주소창에 파라미터가 노출되지 않는다.

메소드에 대해 똑같은 주소 매칭은 에러 발생.

@RequestMapping은 초기에 설정되고 클래스에 대한 주소 매칭이므로 겹쳐도 상관 x

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
@RestController
@RequestMapping("/api")
 
public class PostController {
 
    //HTML <Form>
    //ajax 검색
 
    //http post body -> data를 집어넣어서 받겠다.
    // json ,xmL, multipart - form / text-plain
 
    @PostMapping(value = "/postMethod")
    public SearchParam postMethod(@RequestBody SearchParam searchParam){
//RequestBody로 지정해줘야 함.
        return searchParam;
    }
 
    
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 
 
 
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class SearchParam {
 
    private String account;
    private String email;
    private int page;
 
 
 
    public String getAccount() {
        return account;
    }
 
    public void setAccount(String account) {
        this.account = account;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public int getPage() {
        return page;
    }
 
    public void setPage(int page) {
        this.page = page;
    }
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

 

어노테이션 정리 

 

반응형

'Spring' 카테고리의 다른 글

Spring & Spring boot  (0) 2019.11.10
확장프로그램 설치  (0) 2019.11.08
Rest API 란?  (0) 2019.11.08
소켓 통신 & HTTP 통신  (0) 2019.11.08
자바 웹 개발  (0) 2019.11.08