(복습, 정리) Repository, Service 계층
MemberService 코드를 보면 알겠지만 Service 계층의 메서드들은 기본적으로 Repository 의 메서드들을 호출 및 실행하는 것을 알 수 있다. Service 계층은 비즈니스 로직에 해당하여, 로직에 의해 적절히 데이터를 조회 또는 저장하는 것이다!
모든 데이터 저장, 조회는 트랜잭션 내에서 이루어져야 하므로 MemberService 클래스에 @Transactional을 붙여주고, readOnly=false로 함으로써 "읽기"전용으로 한다. 그리고 데이터를 "쓰기" 를 하는 회원 가입(회원 등록/저장)하는 메서드에는 디폴트 값(readOnly = false)인 @Transactional로 수정해준다!
MemberService에서 사용할 MemberRepository를 private final로 선언하고, 생성자 주입한다! @Autowired는 생성자 주입에서 많이 사용되고, 생성자가 하나인 경우 생략 가능하다! =>롬복의 @RequiredArgsConstructor를 사용하면 final이 붙은(값을 필수적으로 넣어줘야하는) 필드 변수에 자동으로 생성자 주입을 해준다! (참고 : 스프링 데이터 JPA를 사용하면 EntityManager도 주입할 수 있다.)
Last updated