본문 바로가기

분류 전체보기590

외부 API 호출하는 RestTemplate 사용하려면 1. 아래 코드처럼 RestTemplate() 인스턴스를 다른 클래스에서 주입받아서 사용할 수 있게 스프링 빈으로 등록한다. import org.springframework.web.client.RestTemplate; @SpringBootApplication public class JpashopApplication { ... @Bean public RestTemplate getRestTemplate(){ return new RestTemplate(); } } 2. 주입받은 restTemplate.exchange() 메서드로 외부 API를 호출하고, 결과 응답을 받는다. MessageConverter에서 java object를 request body에 담을 message로 변환하거나, 서버로부터 전달받은 .. 2023. 7. 1.
클래스 초기화 후 바로 실행하는 코드 (@PostConstruct, static inner class 사용) 클래스 초기화 후 바로 실행하는 코드 (@PostConstruct, static inner class 사용) 핵심은 @PostConstruct 어노테이션 붙인 메서드 만들어서 클래스 생성 시 inner 클래스 로직 바로 실행하는 메서드 만드는 것 package jpabook.jpashop; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import j.. 2023. 6. 15.
스프링 REST API 생성 원칙 1. API를 만들 때는 Request로 전달 받는 인자의 파라메터로 Entity를 그대로 사용하지 않고, 해당 API에 필요한 정보만을 전달받는 전용 DTO 클래스를 만드는 것이 바람직하다. 그러면 API 스펙 변경에 유연하게 대처할 수 있고, 값들의 Validation 조건 거는 것에도 용이하다. 2. 응답 규격의 확장성을 위해서 Generic 클래스 활용 지연 로딩과 조회 성능 최적화 작년 8월에 동일한 내용 이미 정리 했었었음. 뒤늦게 확인함 https://charactermail.tistory.com/427 근본적으로 Entity를 직접 Response(외부 노출) 하는 경우는 지양해야 하는 방법이다 그럼에도 Entity를 노출하는 경우 주의사항을 보자면 1. 양방향 연관관계가 걸린 곳은 한 곳.. 2023. 6. 13.
실전! 스프링 부트와 JPA 활용1 - 애플리케이션 구현 준비 회원 기능 회원 등록 회원 목록 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 로그인과 권한 관리x 파라미터 검증과 예외 처리 단순화 상품은 도서만 사용 카테고리는 사용X 배송 정보는 사용x 애플리케이션 아키텍처 계층형 구조 - Controller, web : 웹 계층 - service : 비즈니스 로직, 트렌잭션 처리 - repository : JPA를 직접 사용하는 계층, 엔티티 메니저 사용 - domain : 엔티티가 모여 있는 계층, 모든 계층에서 사용 패키지 구조 jpabook.jpashop domain exception repository service web 개발 순서 : 서비스, 레퍼지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, .. 2023. 6. 6.