Programming/Spring
[Spring] 의존관계 주입 방법
G_Gi
2021. 5. 13. 23:59
SMALL
@Autowired를 통한 의존관계 주입
- 생성자 주입
- 수정자 주입(setter 주입)
- 필드 주입
- 일반 메서드 주입
생성자 주입
- 생성자 호출시점에 1번만 호출되는 것이 보장
- 불변, 필수 의존관계에 사용
- 해당 class가 빈으로 등록되어 있고 생성자가 한개 있을때 @Autowired 생략 가능
@Component
public class MemberServiceImpl implements MemberService{
private final MemberRepository memberRepository;
@Autowired
public MemberServiceImpl(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
}
수정자 주입(setter 주입)
- 선택, 변경 가능성이 있는 의존 관계 사용
@Component
public class MemberServiceImpl implements MemberService{
private MemberRepository memberRepository;
@Autowired
public void setMemberRepository(MemberRepository memberRepository){
this.memberRepository = memberRepository;
}
}
필드 주입
- 사용하지 않는 것이 좋음
- 외부에서 값을 넣을 방법이 없음
- setter가 필요해짐
@Component
public class MemberServiceImpl implements MemberService{
@Autowired private MemberRepository memberRepository;
}
일반 메서드 주입
- 잘 사용안됨
@Component
public class MemberServiceImpl implements MemberService{
private MemberRepository memberRepository;
@Autowired
public void init(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
}
LIST