이전챕터 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 에서 ApplicationContext
를 스프링 컨테이너라 부른다고 했다. 이번 챕터에서는 이 스프링 컨테이너가 생성되는 과정에 대해 알아본다.
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
💡 심화: 더 정확히는 스프링 컨테이너는 BeanFactory
, ApplicationContext
로 구분해서 이야기한다. 하지만, BeanFactory
를 직접 사용하는 경우는 거의 없기에 일반적으로 ApplicationContext
를 스프링 컨테이너라 한다.
: new AnnotationConfigApplicationContext() 생성자 호출을 통해 스프링 컨테이너를 생성한다. 여기서 해당 생성자의 인자값으로 구성 정보를 지정해줘야하는데, 여기서는 예제코드로 작성한 구성정보 클래스인 AppConfig.class를 전달해준다.
스프링 컨테이너 생성 및 구성정보 지정
전달받은 구성정보(AppConfig)를 사용해서 스프링 빈을 등록해준다.
여기서 빈 이름
은 구성정보에 있는 메서드 이름을 사용하며, 임의로 어노테이션 속성(name)을 사용해 지정해줄수도 있다. 다만, 여기서 빈 이름은 항상 다른 이름을 부여해야하는데 그 이유는 빈 이름이 중복될 경우 다른 빈이 무시되거나 기존 빈을 덮어버리거나 설정에따라 에러가 발생할 수 있기 때문이다. 이럴 경우 어노테이션 속성으로 빈 이름을 바꿔줄수는 있지만, 가장 좋은건 빈 이름을 별개로 해놓는거다.
AppConfig의 빈 정보를 읽어와 등록해준다.