@AllArgsConstructor
- Autowired로 repository를 바로 주입하면 변경이 불가능하다 따라서 아래 처럼 메소드가 필요
private final MemberRepository memberRepository;
// 생성자 인젝션을 주입함 -> autowired 를 지워도 spring에서 자동으로 주입해줌
// 이게 AllArgsConstructor를 주입하는것과 같음
@Autowired
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
위처럼 생성자 인젝션을 쓰면 한번 생성될때 모든게 완성되서 나중에 누군가 set 할 수 없다.
또한 테스트 케이스를 작성 할 때 유리하다.
but 늘 저렇게 메소드를 작성하기는 어렵다.
→ lombok의 @AllArgsConstructor 사용하면 자동으로 저 메소드를 주입시켜준다.
@RequiredArgsConstructor
: 이 어노테이션을 사용하면 final을 사용하고있는 애들만 생성자를 만들어준다.
→ AllArgsConstructor 보다 더 낫다!
'JAVA' 카테고리의 다른 글
[JAVA] @NamedQuery 와 @Query (0) | 2022.02.15 |
---|---|
[JAVA] 변경감지와 병합(merge) (0) | 2022.02.10 |
[JAVA] 쿼리 파라미터 남기기 (0) | 2022.01.20 |
[JAVA] fetch join (0) | 2022.01.18 |
[JAVA] JPA 조인과 서브쿼리 (0) | 2022.01.18 |