Study/실전! 스프링 부트와 JPA 활용1
회원 서비스 개발
Subi
2022. 7. 12. 14:31
1. 패키지 생성
service 패키지를 새로 생성 후
MemberService클래스를 만든다.
2. 서비스 코드 개발
상단에 @Service, @Transactional 을 선언하여 준다.
Transactional의 속성으로 readOnly 라는 속성을 true로 해주게 되면
읽기의 역할을 진행하여 리소스 상의 부하를 줄일 수 있지만,
쓰기 역할의 메서드가 실행이 안될수 있어
쓰기 역할의 메서드에는 따로 @Transactional을 선언하여 준다.
기본적인 메서드들을 작성해주고, 쓰기 역할을 하는 join 에만 @Transactional을 다시 선언해준다.
인젝션
가장 기본적인 쓰임새는 @Autowired로 인젝션을 생성시켜주는것이다.
1. 세터 인젝션
- 장점 : 테스트 코드에서 Mock으로 직접 주입이 가능하다.
- 단점 : 애플리케이션 실행 중간에 수정이 가능하여 위험하다.
- 요즘 잘 사용하지 않음
2. 생성자 인젝션
- 생성자를 직접 생성해 인젝션 해주는 방식으로 , 자동으로 Autowired 를 해준다.
요즘 잘 사용한다.
3. 어노테이션 사용
- @AllArgsConstructor
: 생성자 필드를 자동으로 생성시켜주는 어노테이션
- @RequiredArgsConstructor
:final이 있는 필드만 가지고 생성자 필드를 생성시켜주는 어노테이션
요즘 가장 많이 사용
강의 : 인프런 실전! 스프링 부트와 JPA 활용1 (김영한) - 회원 서비스 개발 https://inf.run/VMWU