스프링 컨테이너와 스프링 빈

code++·2024년 10월 21일

스프링 컨테이너와 스프링 빈

스프링 컨테이너 생성

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
  • ApplicationContext -> 스프링 컨테이너이자 인터페이스
  • 스프링 컨테이너 xml기반,Annotation을 기반으로 자바 설정 클래스로 만들 수 있다.

스프링 컨테이너의 생성 과정

  1. 스프링 컨테이너 생성
  • 스프링 컨테이너에 (key : 빈이름(메소드명),value : 빈 객체(메소드 반환명 impl)
  • 구성 정보 = AppConfig.class
  • 이러한 구성 정보를 지정하고 활용한다.
  1. 스프링 빈 등록
  • 빈 이름은 메서드 이름 사용.
  • 빈 이름 직접 부여 가능
@Test
@Bean(name:'sprintHi')
public ~~

3.스프링 빈 의존관계 설정(DI)

  • 메소드의 반환값을 의존하는 메서드로 입력.
@Bean
public MemberService memberService(){
return new MemberServiceImpl(memberRepository());
}

@Bean
public MemberRepository memberRepository(){
return new MemberMeberRepository();
}

컨테이너에 등록된 모든 빈 조회

-> 스프링 컨테이너에 등록한 빈들이 잘 등록 되었는가?
1. 내부 bean + 등록한 bean 출력
2. 내부 bean만 출력

스프링 빈 조회 방법

  1. ac.getBean(빈이름,타입)
  2. ac.getBean(타입)
  3. 예외발생시(NoSuchBeanDefinitionException) 예외를 사용하여 조회

스프링 빈 조회 - 동일한 타입이 둘 이상일때

  • 같은 타입의 스프링 빈일때 오류 발생 -> 빈이름 저장하여 조회
  • ac.getBeansOfType() -> 모든 빈 조회 가능
profile
일상

0개의 댓글