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