빈 생명 주기(Bean Life Cycle)와 콜백(callback)
Backend/Spring2023. 12. 24. 06:25빈 생명 주기(Bean Life Cycle)와 콜백(callback)

빈 초기화와 소멸 스프링 컨테이너(DI 컨테이너라고도 불린다)에서 관리되는 빈의 생명 주기는 크게 세 가지 단계로 나뉜다. 빈 초기화 빈 사용 빈 소멸 스프링 빈은 객체가 생성되고 의존관계 주입이 끝난 후에 사용할 수 있다. 그렇기 때문에 DB Connection Pool(DBCP), Network Socket과 같이 애플리케이션 시작 시점에 미리 연결하고 종료 시점에 연결을 끊는 작업을 진행하는 경우는 의존관계 주입이 끝난 후 빈 초기화 작업이 이루어 져야 하고, 애플리케이션 종료 시점에 빈 소멸이 되어야 한다. 그렇다면 개발자가 이 시점을 어떻게 알고 프로그래밍을 할 수 있을까? 스프링에서는 친절하게 개발자에게 의존관계 주입이 완료된 시점과 스프링 컨테이너가 종료되는 시점에 콜백(callback)기능..

@Autowired 빈 설정 방식 (+ @Qualifier, @Primary)
Backend/Spring2023. 12. 22. 02:22@Autowired 빈 설정 방식 (+ @Qualifier, @Primary)

이전 포스팅에서는 스프링 빈 등록 방법에 자동,수동으로 등록하는 방법이 있다고 정리 했었다. 스프링 컨테이너가 자동으로 스프링 빈 객체의 요구 사항에 맞는 다른 빈을 찾아 연결해주는 것을 오토와이어링(Autowiring) 이라고 하며, 2가지 방식이 있다. 타입을 사용한 방식 이름을 사용한 방식 필드 이름을 사용한 방식은 @Resource 애너테이션을 활용하는데 생성자 주입에는 사용하지 못한다. 이번 포스팅에서는 타입을 사용한 방식으로 지금까지 자주 봐왔던 @Autowired 애너테이션에 대해서 정리하고자 한다. @Autowired 위에서 설명했듯이 @Autowired 애너테이션은 스프링 빈을 자동으로 등록 하는 방법 중 타입을 사용한 방식이며 다음과 같이 빈을 조회하고 매칭시키는 규칙이 있다. 주입받고..

다양한 의존관계 주입 방법 (생성자 주입을 선택해야 하는 이유)
Backend/Spring2023. 12. 18. 10:01다양한 의존관계 주입 방법 (생성자 주입을 선택해야 하는 이유)

의존관계 주입 방법은 크게 4가지가 있다. 생성자 기반 의존성 주입 설정자 기반 의존성 주입(setter) 필드 기반 의존성 주입 일반 메서드 주입 생성자 기반 의존성 주입 컨스트럭터 인젝션이라고도 불리는데 이름 그대로 생성자를 통해서 의존관계를 주입 받는 방법이다. @Component public class OrderServiceImpl implements OrderService { private MemberRepository memberRepository; private DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy..

image