TIL
(2024-05-13) 스프링 입문 시작
o_coding
2024. 5. 13. 20:22
테스트코드 : 메인메소드 필요없음 Junit이 독자적인 실행환경을 가지고 있기 때문
Lombok : 어노테이션을 통해서 쉽게 생성자와 게터세터를 만들 수 있다.
컨트롤러
@Controller
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "Hello World !!";
}
@GetMapping("/get")
@ResponseBody
public String get(){
return "GET 메소드 요청!!!";
}
@PostMapping("/post")
@ResponseBody
public String post(){
return "POST 메소드 요청!!";
}
@PutMapping("/put")
@ResponseBody
public String put(){
return"PUT 메소드 요청 !!";
}
@DeleteMapping("/delete")
@ResponseBody
public String delete(){
return "DELETE 메소드 요청 !!";
}
}
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "Hello World !!";
}
@GetMapping("/get")
@ResponseBody
public String get(){
return "GET 메소드 요청!!!";
}
@PostMapping("/post")
@ResponseBody
public String post(){
return "POST 메소드 요청!!";
}
@PutMapping("/put")
@ResponseBody
public String put(){
return"PUT 메소드 요청 !!";
}
@DeleteMapping("/delete")
@ResponseBody
public String delete(){
return "DELETE 메소드 요청 !!";
}
}
컨트롤러 클래스에는 Controller 어노테이션을 사용한다.
RequestMapping 을 통해 중복되는 경로를 공통으로 처리한다.
ResponseBody는 반환하는 데이터가 html이 아닐 때 사용한다.
html을 반환하지 않고 데이터만 반환해서 ResponseBody를 전부 사용할 때 생략하려면 RestController 어노테이션을 사용한다.
@RestController
@RequestMapping("/response/rest")
public class ResponseRestController {
// [Response header]
// Content-Type: text/html
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/string")
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
// [Response header]
// Content-Type: application/json
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/class")
public Star helloClassJson() {
return new Star("Robbie", 95);
}
}
@RequestMapping("/response/rest")
public class ResponseRestController {
// [Response header]
// Content-Type: text/html
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/string")
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
// [Response header]
// Content-Type: application/json
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/class")
public Star helloClassJson() {
return new Star("Robbie", 95);
}
}
@GetMapping("/json/class")
@ResponseBody
public Star helloClassjson(){
return new Star("ohs9902",26);
}
@ResponseBody
public Star helloClassjson(){
return new Star("ohs9902",26);
}
객체를 반환하면 json형태로 변환
오늘 스프링 공부를 처음으로 진행했다. 여러가지 어노테이션을 통해서 코드를 간단하게 짤수있는점이 좋았다. html을 반환하는 api도 만들어보고 json형태를 반환하는 api도 만들어보았다. 객체를 반환해도 json으로 변환되는 기능도 인상적이었다. http 메서드도 어느정도 익숙해졌다. 그런대 여러기능들이 많다보니 아직 적응하지는 못한 것 같다.