TIL:2024/06/03

White 와잇·2024년 6월 3일

TIL

목록 보기
31/40
post-thumbnail

트러블슈팅

@Transactional(readOnly = true)가 오류날 때

  • import jakarta.transaction.Transactional;
    import org.springframework.transaction.annotation.Transactional;으로 변경

두 Transactional import의 차이

기능적으로는 같은 트랙잭션 기능을 하므로 오류가 나지 않는다면 크게 신경쓰지 않아도 되었다.
그런데 org.springframework의 패키지가 propagation, isolation, timeout, readOnly, rollback 등으로 더 많은 옵션을 제공한다.

jakarta 패키지는 비교적 최신 버전 Spring부터 지원한다고 한다.

전반적으로 Spring 공부를 하면서 org.springframework의 패키지를 채택하는 편이 편할 것으로 보인다.

참고 페이지:
어떤 @Transactional을 사용해야 할까?

클라이언트에게 데이터 전달 방법: ResponseEntity 사용

단순히 JSON 형태의 body를 넘겨주기위해
@ResponseBody를 자주 사용했었는데

ResonseEntity 객체를 사용하면 Header + status code + @ResponseBody를 구성할 수 있다.

ResponseEntity<T> 제네릭 타입에는 원래 Body로 넘겨주던 타입을 넣어주면 된다.
Dto 같은 객체도 가능

  • new ResponseEntity.ok().headers(new HttpHeaders()).body(T); 처럼 build 형식의 체이닝을 권장하더라.

  • new ResponseEntity<Dto>(dto, Headers, HttpStatus); 같은 형식도 가능, dto는 body 형태 예시

profile
웹개발 도전! 데브옵스 도전!

0개의 댓글