@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 |