반응형
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 {
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 |