본문 바로가기
IT/Java

ApplicationContext(스프링 컨테이너)

by 성준하이 2023. 3. 28.
반응형

ApplicationContext를 스프링 컨테이너라고 한다. 
ApplicationContext는 BeanFactory 인터페이스의 하위 인터페이스이고, 
ApplicationContext는 BeanFactory에 부가기능을 추가한 것이다.

 

자세한 기능에 대해서는 공식 홈페이지에 명시되어있으니 한번 확인해보는것도 좋을듯 하다.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html

 

ApplicationContext (Spring Framework 6.0.7 API)

Expose AutowireCapableBeanFactory functionality for this context. This is not typically used by application code, except for the purpose of initializing bean instances that live outside the application context, applying the Spring bean lifecycle (fully or

docs.spring.io

 

클라이언트에서 해당 빈을 요청하면 애플리케이션 컨텍스트는 다음과 같은 과정을 거쳐 빈을 반환한다.

  1. ApplicationContext는 @Configuration이 붙은 클래스들을 설정 정보로 등록해두고,
    @Bean이 붙은 메소드의 이름으로 빈 목록을 생성한다.
  2. 클라이언트가 해당 빈을 요청한다.
  3. ApplicationContext는 자신의 빈 목록에서 요청한 이름이 있는지 찾는다.
  4. ApplicationContext는 설정 클래스로부터 빈 생성을 요청하고, 생성된 빈을 돌려준다.

 

 

메서드에서 호출은 아래와 같이 이루어진다.

 

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

 

로 먼저 application context를 잡아주고

다른 곳에서 @Bean으로 잡혀있는 것들을

 

ServiceA serviceA = applicationContext.getBean("serviceA",ServiceA.class);

 

이런식으로 받아와서 빈 객체를 가져온다.

반응형

'IT > Java' 카테고리의 다른 글

[error] javassist.tools.web.Webserver <port number>  (33) 2023.04.02
java 에서 switch 문  (26) 2023.03.30
Mylyn 이란?  (41) 2023.03.25
spring project 만들기 with Initializr  (36) 2023.03.10
[mybatis] 자바에서 mybatis  (39) 2023.03.03

댓글