Spring 입문 주차 6일차
1. 세션 정리
1)application.properties 대신 apllication.yml로 쓰기
- 세팅을 세부적으로 나누어 주고 들여쓰기를 사용하여 가독성을 높일 수 있다,
2)@builder
- 객체 생성에서 주입하는 것에 대한 방식
- 객체를 생성 할 때는 생성자 패턴과 빌더 패턴이 존재한다.
- 생성자 패턴은 아래와 같다. id와 name이 헷갈리게 들어갈 경우가 생긴다.
public class CarImpl {
private String id = "1";
private String name = "carTest";
Car car1 = new Car(id, name);
Car car2 = new Car(name, id);
}
- Lombok을 통해 builder 패턴을 만들어 보자. 더이상 헷갈리지 않을 것 같다.
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Car {
private String id;
private String name;
@Builder // 생성자를 만든 후 그 위에 @Builder 애노테이션 적용
public Car(String id, String name) {
this.id = id;
this.name = name;
}
}
public class CarImpl {
private String id = "1";
private String name = "carTest";
Car car3 = Car.builder()
.id(id)
.name(name)
.build();
}
3)Repository
- repository 상속시 instends JpaRepository<메인클레스(ex.Memver), Pk타입(ex.Long)>과 같이 타입을 넣어준다
- findbyId 같은 건 JpaRepository가 상속되면서 자동으로 구현된다.
4)Service에서 dto에 담기
- 내가 한거 보다 메서드를 사용해서 담는게 더 깔끔해 보일 수 있다.
BoardResponseDto responseDto = new BoardResponseDto(board.getUsername(),sucess);
// 강사님 방식
return memberresponse.of(member)
//dto 에서 of 메서드안에 아래처럼 다 넣어주어 service에서 코드를 깔끔하게 하고
//column이 여러개 있을 때 혼란을 최소화 할 수 있다.
this.name = member.getUsername()
5)@NotBlank와 @NotNull, @NotEmpty의 차이
- @NotNull은 이름 드래도 Null만 허용하지 않음, null이 들어왔을 때 예상치 못한 오류나 문제가 생길 경우 사용
- @NotEmpty는 null과 ""둘다 허용하지 않게 한다. 하지만 " "은 허용이 된다.
- @NotBlank는 null ,"", " " 모두 허용하지 않는다.
2. 기술 멘토링
1) Repository : entity에 생성된 DB에 접근 하는 메서드를 사용하기 위한 interface, 메서드들의 CRUD를 어떻게 할건지 정의하는 계층
2)try catch는 실제로 지양한다 > 예외를 잡고 아무것도 안하면 에러를 찾기 어렵다.