본문 바로가기
카테고리 없음

8/4 스프링부트작업

by 흥뷰자 2022. 8. 5.

1. 자바와 다른 언어로 작성된 서버(외부기기)와의 통신 :  
Controller와 RestController 차이 
자바에서 리액트나 다른 쪽으로 신호보내줄 거 아니면 controller만으로도 가능함.

2. DTO작성
Builder 문법에 따라 입력된 필드로 생성된 인스턴스의 생성자를 자동으로 만들어주는 패턴.
체이닝기법으로 작성해서, 인스턴스 변수의 중복코드를 제거해 준다. 

@RequiredArgsConstructor : 해당 클래스의 인스턴스 생성시 내부 변수를 매개변수로 인스턴스를 생성


3. MemberRepository 의 메서드 -> 레파지토리 테스트에서 Member 테스트할 때. 
find + By + ______ (첫글자 대문자) 빈칸을 활용해서 찾겠다. 

JPA 해당 인터페이스 내부에 있는 메서드의 원형을 선언하면 
나중에 인스턴스변수를 만들어 줄때 메서드로 사용할 수 있게 jpa가 생성해준다 


3. jpa에서는 레파지토리 인터페이스(원형) 안에 함수를 선언해서 실제 사용할수있게 되어있는데
일반적인 스프링 프레임워크에서는 인터페이스를 객체로 만들수 없다. 
service(원형)가 아닌 serviceImpl(상세구현)에서 인스턴스를 만들 수 있다.
원형을 상속받은 상세 구현체가 원형의 메서드를 사용할 수 있는 다형성의 개념.
public Long registerProduct(ProductDTO dto) {
Member m = memberository.findByNickname(dto.getNickname());

4.자바 기본서 낡도록 보기

5. 서비스에서 dto가 필요하니까 .set___을 통해서 dto필드값을 채워주고
dtoToEntity하기 전에 값들을 채워주는 작업을 하는것. 
entityToDto는 레포지토리에서 entity에 필요한 값들을 가져와서 dto로 바꿔주는 작업. 

public PageResponseDTO getList(PageRequestDTO dto) {
Sort sort = Sort.by("pNum").descending();
Pageable pageable = PageRequest.of(dto.getPage()-1, dto.getSize(),sort);

댓글