1. controller/test, dto/test, repository, service 패키지 생성하고, TestDto.java, TestController.java 파일 생성 후 아래 코드 참조하여 작성
public class TestDto {
int id;
String name;
int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "TestDto{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
@RestController
public class TestRestController {
@GetMapping(value = "/")
public String getMapping(){
return "getMapping";
}
@GetMapping(value = "/test")
public String getMapping1(@RequestParam String name, @RequestParam int age){
return name + " " + age;
}
@GetMapping(value = "/test2")
public String getMapping2(@RequestParam(name = "nickname") String name, @RequestParam int age){
return name + " " + age;
}
@GetMapping(value = "/test3/{id}")
public String getMapping3(@PathVariable(name = "id") int age){
return ""+age;
}
@PostMapping("/")
public String postMapping(){
return "postMapping";
}
@PostMapping("/test")
public String postMapping1(@RequestBody TestDto testDto){
System.out.println("testDto = " + testDto);
return testDto.toString();
}
@PutMapping("")
public String putMapping(){
return "put mapping";
}
@DeleteMapping
public String deleteMapping(){
return "delete Mapping";
}
}
1-1. 위에서 만든 컨트롤러들 Talend API로 테스트 가능
GET | http://127.0.0.1:8081
GET | http://127.0.0.1:8081/test?name=kevin&age=10
- @RequestParam으로 URI에 전달된 값 받기 가능
GET | http://127.0.0.1:8081/test2?nickname=kevin&age=10
- @RequestParam(name="nickname")으로 URI에 전달된 값 받기 가능
GET | http://127.0.0.1:8081/test3/10
- @PathVariable(name="id")으로 URI에 전달된 값 받기 가능
POST | http://127.0.0.1:8081
POST | http://127.0.0.1:8081/test + JSON
- @RequestBody 로 RequestBody에 JSON으로 전달되는 정보 받기 가능
PUT | http://127.0.0.1:8081
DELETE | http://127.0.0.1:8081
2. Spring MVC에서 Controller Annotation
크게 아래 2가지 Controller가 존재한다.
@Controller : 전통적인 MVC 컨트롤러의 @Controller는 주로 View(resource 폴더 하단의 html 파일)를 반환하기 위해 사용한다.
@RestController : @Controller에 @ResponseBody가 추가된 것.
Controller와 달리 Json으로 객체 데이터를 반환하는 목적으로 사용.
최근에 데이터를 응답으로 제공하는 REST API를 개발할 때 주로 사용하며, 객체를 ResponseEntity로 감싸서 반환한다.
※ 객체 데이터를 @RestController에서 그대로 응답해도 JSON 응답이 클라이언트에게 내려가는 이유는 내부적으로 Jackson 라이브러리가 객체를 알아서 JSON 포맷으로 변환시켜주기 때문임.
상세한 설명은 아래 블로그 참조 : https://mangkyu.tistory.com/49
※ 심화 : 정적리소스 커스텀 설정 방법 잘 적힌 블로그
https://atoz-develop.tistory.com/entry/spring-boot-web-mvc-static-resources
'스프링 관련 > 스프링 따라하기' 카테고리의 다른 글
spring JpaAuditing (1) | 2022.11.06 |
---|---|
h2 inmemory db 설정 위한 정보 (0) | 2022.11.06 |
3. Repository (0) | 2022.05.24 |
1. 스프링 프로젝트 전 환경설정 (java/intellj/spring project 생성 및 설정) (0) | 2022.05.23 |
댓글