스프링 컨테이너
-ApplicationContext
-직접 AppConfig를 사용해 직접 객체생성, DI 대신 스프링 컨테이너 사용
-@Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용
-@Bean이라 적힌 메서드 모두 호출하여 반환된 객체를 스프링 컨테이너에 등록
-applicationContext.getBean() 메서드로 스프링빈(객체) 조회 가능
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(AppConfig.class);
- 스프링 컨테이너는 XML 기반 or 애노테이션 기반 자바 설정 클래스로 만들 수 있다.
- 스프링 컨테이너 생성시 구성정보 지정해줘야함 ( 여기서는 AppConfig.class)
빈 이름
- 메서드 이름 사용
- 직접 부여 가능 @Bean(name = " " )
-> 같은 이름일 경우 기존 빈을 덮어버리는 오류 발생
모든 빈 출력
- ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름 조회
- ac.getBean() : 빈 이름으로 빈 객체 조회
애플리케이션 빈 출력
- 내부 사용하는 빈 getRole()로 구분
- ROLE_APPLICATION : 일반적으로 사용자가 정의한 빈
- ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈
스프링 빈 조회
- ac.getBean(빈이름, 타입)
- ac.getBean(타입)
* 상속관계
- Object 타입으로 조회 하면 모든 스프링 빈 조회 가능
-> 부모 타입으로 조회하면 자식 타입도 함께 조회 ( 모든 자바 객체 최고부모 = Object )
'Back-end > spring' 카테고리의 다른 글
WebSocket + STOMP (0) | 2021.03.25 |
---|---|
의존관계 주입 (0) | 2021.02.16 |
컴포넌트 스캔 (0) | 2021.02.08 |
애노테이션 & XML 기반 설정 사용 (0) | 2021.02.08 |
객체지향 원리 적용 (0) | 2021.02.08 |