12월 27일 수 TIL

장숭혁·2023년 12월 28일
0

TIL작성

목록 보기
39/60
public interface CommentRepository extends JpaRepository<Comment, Long> {
  @EntityGraph(attributePaths = {"user"})
  Page<Comment> findByPostId(Long postId, Pageable pageable);
}
  • @EntityGraph 어노테이션
    -@EntityGraph는 JPA가 제공하는 기능이다. 엔티티를 조회할 때 연관된 엔티티들을 어떻게 가져올지 정의할 수 있다. attributePaths는 로딩 할 연관 속성의 경로를 지정하는데 여기서는 "user"라는 연관 속성을 같이 로딩하라는 의미이다.

HttpHeaders

  • HTTP 메시지의 헤더를 표현하는 클래스이다. HTTP 헤더는 클라이언트와 서버가 요청 또는 응답을 처리하는 방법에 대한 정보를 전달하는 데 사용된다.
  • 이 정보에는 콘텐츠의 유형, 인코딩 방식, 인증 정보, 캐시 제어 방식 등이 포함될 수 있다.
  • Spring 프레임워크의 HttpHeaders 클래스를 통해 헤더를 쉽게 조작하고 HTTP 메시지에 추가할 수 있다.
  • 맵(Map)과 유사한 인터페이스를 제공하며, HTTP 헤더 이름을 키로, 헤더 값들을 값으로 사용한다.
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Custom-Header", "Custom header value");
HttpHeaders responseHeaders = new HttpHeaders();
      responseHeaders.set("Access-Token", accessToken);
      responseHeaders.set("Refresh-Token", refreshToken);
  • HttpHeaders 클래스에서 자주 사용되는 메소드
    -set(String headerName, String headerValue) : 지정된 헤더 이름에 대한 값들을 지정한 값으로 설정한다. 기존 값들은 모두 제거된다. 새로운 헤더를 추가할 수 있다. 하지만 같은 이름의 헤더가 이미 존재하는 경우, set 메소드는 기존의 값들을 모두 제거하고 새로운 값을 설정한다. -add(String headerName, String headerValue) : 지정된 헤더 이름에 값을 추가한다. 기존 값들은 유지된다.
    HttpHeaders headers = new HttpHeaders();
    headers.set("My-Header", "Value1"); // "My-Header"라는 이름의 헤더를 추가하고, 그 값을 "Value1"로 설정합니다.
    headers.set("My-Header", "Value2"); // "My-Header"라는 이름의 헤더의 값을 "Value2"로 변경합니다. 기존의 "Value1"은 제거됩니다.
    headers.add("My-Header", "Value3"); // "My-Header"라는 이름의 헤더에 "Value3"라는 값을 추가합니다. 기존의 "Value2"는 유지됩니다.```

-"My-Header"라는 이름의 헤더에는 ["Value2", "Value3"]라는 두 개의 값이 저장되어 있다.
-setBearerAuth(String token) : Authorization 헤더를 "Bearer {토큰}" 형태로 설정한다. 이 메소드는 주로 JWT와 같은 토큰 기반 인증에서 사용된다.

ResponseEntity

ResponseEntity.ok().headers(headers).body("Hello, World!")
는 상태 코드 200, 설정된 헤더, 그리고 body에 "Hello, World!" 메시지를 반환한다.

ResponseEntity.status(HttpStatus.CREATED).headers(headers).body(newItem)
는 상태 코드 201(Created), 설정된 헤더, 그리고 새로 생성된 아이템을 반환한다.

ResponseEntity.status(HttpStatus.NOT_FOUND).body("Item not found")
는 상태 코드 404(Not Found)와 함께 "Item not found" 메시지를 반환한다.

profile
코딩 기록

0개의 댓글

관련 채용 정보