2022.07.26.TIL
주소에서 값을 받을 때:
GET http://localhost:8080/hello/request/star/BTS/age/28
@GetMapping("/star/{name}/age/{age}")
에서는 @PathVariable로 값 받아오기
GET http://localhost:8080/hello/request/form/param?name=BTS&age=28
/form/param
에서는 @RequestParam으로 값 받아오기
body에서 값을 전달받을 때:
POST http://localhost:8080/hello/request/form/model
Header
Content type: application/x-www-form-urlencoded //json이 아닌 다른 방식
Body
name=BTS&age=28
@PostMapping("/form/model")
에서는 @ModelAttribute
POST http://localhost:8080/hello/request/form/json //json형식
Header
Content type: application/json
Body
{"name":"BTS","age":"28"}
@PostMapping("/form/json")
에서는 @RequestBody로 받아오기
테이블 column의 이름들을 정할 때에는 sql예약어를 조심해야 한다.(테이블이 안만들어짐)
https://zetawiki.com/wiki/MySQL_%EC%98%88%EC%95%BD%EC%96%B4
MySQL 예약어 - 제타위키
다음 문자열 포함...
zetawiki.com
Spring 과제하다 발견한 점들:
또다른 객체에 담아서 출력 json을 만들어줄 수 있다.
추상자료형 T로 선언해서 여러곳에서 사용할 수 있게 함.
public class ResponseDto<T> {
private boolean success;
private T data;
private String error;
public ResponseDto(boolean success, T data, String error){
this.success = success;
this.data = data;
this.error = error;
}
}
ResponseEntity로 뭔가 할 수 있을거 같았지만 데이터 출력 순서가 맘대로 안돼서 포기
https://hyeonic.tistory.com/197
[SpringMVC] ResponseEntity 적용
개요 기존 프로젝트에는 단순히 값을 body에 담아 전달하기 위한 api 서버를 구성하였다. 하지만 프론트 개발자와의 원할한 통신을 위해서는 body 이외에 HTTP의 상태 코드와 헤더 정보를 좀 더 상세
hyeonic.tistory.com
@ExceptioHandler 메소드로 유연하게 예외처리 가능 (try-catch문 없이)
@ExceptionHandler(Exception.class)
public ResponseDto<Object> handleE(Exception e){
return new ResponseDto<>(false,null,e.getMessage());
}
https://mangkyu.tistory.com/204
[Spring] Spring의 다양한 예외 처리 방법(ExceptionHandler, ControllerAdvice 등) 완벽하게 이해하기 - (1/2)
예외 처리는 robust한 애플리케이션을 만드는데 매우 중요한 부분을 차지한다. Spring 프레임워크는 매우 다양한 에러 처리 방법을 제공하는데, 어떠한 방법들이 있고 가장 좋은 방법(Best Practice)은
mangkyu.tistory.com
JPA 공부해보기(언젠가는...)
싸니까 믿으니까 인터파크도서
JPA를 처음 접했을 때의 놀라움은 아직도 잊혀지지 않는다. 지금까지 관계형 데이터베이스에서 객체를 관리하려고 작성했던 무수한 CRUD 코드와 SQL들이 머릿속을 스쳐 지나갔다. 마치 시골에서
book.interpark.com
스프링에서 Index를 사용하면 더 빠르게 DB조회가 가능할 때도 있다.
JPA로 인덱스 사용하기
배경 데이터베이스는 조건문으로 검색할 때, 테이블 전체를 full scan으로 탐색한다. 이러한 탐색 방식은 데이터가 많아지면 많아질 수록 비효율적인 방식이라는 것을 알 수 있을 것이다. 이러한
velog.io