본문 바로가기
유데미 스프링

Configuration , Bean, 컨테이너, 빈 연결 우선순위

by hoshi03 2024. 2. 19.

@Configuration 어노테이션이 붙으면 스프링 설정 파일로 사용 가능하다

 

설정 파일안에 @Bean으로 의존성 주입한 객체를 넣어두고 컨텍스트에서 꺼내서 가져올 수 있었다

 

 	// 스프링 프레임워크를 시작해서 빈을 관리하게 만들기
        AnnotationConfigApplicationContext context  = 
        new AnnotationConfigApplicationContext(HelloWorldConfiguration.class);

        // 컨텍스트에서 객체 가져오기 - bean 어노테이션
        System.out.println(context.getBean("name"));

        System.out.println(context.getBean("age"));
        System.out.println(context.getBean("person"));
        System.out.println(context.getBean(Address.class));

 

빈 이름, 클래스로 빈을 가져올 수 있고

빈 안에서도 빈을 호출해서 새로운 빈을 만들때 사용할 수 있다

 

스프링 IoC 컨테이너

 

BeanFactory- 기본 스프링 컨테이너

ApplicationContext - 일반적을 사용하는 스프링 컨텐이너

 

빈 연결 우선순위

 

Address 클래스가 있을때 Address 클래스로 만들어진 빈이 여러개면 에러가 터진다

스프링 컨텍스트에서 가져오려는 빈 타입이 여러개일때 특정 빈을 기본으로 만들 수 있다

@Primary 어노테이션을 이용해서 빈에 우선 순위를 넣어 줄 수 있다

@Qualifier 어노테이션을 이용하면 @Primary로 지정한 것이 아닌 내가 지정한 빈을 한정자로 사용할 수 있다

 

@Primary - 여러 빈 중에 우선순위를 주기

@Qualifier - 특정 빈을 가져오게 해주기

Qualifier가 우선순위가 더 높다

 

 

 

 

 

 

 

 

'유데미 스프링' 카테고리의 다른 글

PostConstruct, PreDestroy  (0) 2024.03.20
싱글톤, 프로토타입  (0) 2024.03.20
지연 초기화, 즉시 초기화  (0) 2024.03.20
스프링 용어 정리  (0) 2024.02.25
의존성 주입  (0) 2024.02.24