//스프링 컨테이너 생성
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(AppConfig.class);
스프링 빈 저장소에 있는 빈들을 등록한다.
@Bean을 보고 싹 다 호출을 한다.
빈 이름은 메서드 이름을 사용하지만 직접 부여할수도 있다.
ex) @Bean(name = "qqqqq")
Bean 이름은 절대 중복 금지!!!!
스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입(DI)한다.
isInstanceOf 정확히 뭘까??
객체가 지정된 유형(클래스 또는 하위 클래스 또는 인터페이스)의 인스턴스인지 여부를 테스트하는 데 사용된다고 한다.
true or false로 반환한다.
ex)class Simple1{ public static void main(String args[]){ Simple1 s=new Simple1(); System.out.println(s instanceof Simple1);//true } }
BeanFactory
- 스프링 컨테이너의 최상위 인터페이스다.
- 스프링 빈을 관리하고 조회하는 역할을 담당한다.
- getBean() 을 제공한다.
- 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다.
ApplicationContext
- BeanFactory 기능을 모두 상속받아서 제공한다.
빈을 관리하고 검색하는 기능을 BeanFactory가 제공해주는데, 그러면 둘의 차이가 뭘까?
- 애플리케이션을 개발할 때는 빈을 관리하고 조회하는 기능은 물론이고, 수 많은 부가기능이 필요하다.
쉽게말해 ApplicationContext는 빈 관리기능 + 편리한 부가 기능을 제공
다시 듣기 - 관심사의 분리, 다양한 설정 형식 지원 - 자바 코드, XML