Tagged

BeanFactory

A collection of 7 posts

ApplicationContext

BeanFactory와 ApplicationContext 인터페이스

IoC의 가장 상위에 있는 인터페이스인 BeanFactory에 있는 메소드들 입니다. ApplicationContext 인터페이스에 있는 메소드 들인데 이 인터페이스는 아래의 인터페이스를 확장하고 있습니다.ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver위 인터페이스들의 클래스 다이어그램을 그려보면 다음과 같이 됩니다. BeanFactory를 구현한 클래스들(ApplicationContext를 구현한 클래스와 중복되는 클래스는 삭제했습니다.) AbstractBeanFactory, DefaultListableBeanFactory, StaticListableBeanFactory, XmlBeanFactory, ApplicationContext를 구현한 클래스들 AbstractApplicationContext, AbstractRefreshableApplicationContext,

AbstractBeanFactory

Object getBean(String name) 메소드 구현 살펴보기-윗 부분

Object getBean(String name) throwsBeansException 메소드는 name에 해당하는bean의 객체를 반환합니다. 이 메소드는BeanFactory가 Singleton 또는Prototype 패턴을 사용하는 것을 보여줍니다. name으로 bean의 별명을 넘겨 줘도 그에 상응하는 bean 객체를 받아 볼수 있으며 이 경우에도 역시 해당하는 name이 없다면 상위BeanFactory에서 찾게 됩니다. 이 메소드는 특히RuntimeException을 발생 시킬 수 있는데 BeanException은 bean 객체를 가져오지

AbstractBeanFactory

BeanFactory와 AbstractBeanFactory의 관계

1301622120.bmp AbstractBeanFactory는 총 네 개의 인터페이스 구현에 대한 책임이 있지만 abstract class인 관계로 몇몇 메소드는 abstract인 채로 하위 클래스에서 구현하도록 되있습니다. 그리고 네 개의 인터페이스 중에 하나 인 SingletonBeanRegistry 인터페이스는 DefaultSingletonBeanRegistry 클래스에서 구현을 했고 이 클래스를 상속 받고 있는 구조입니다. UML에 차마 다 그리기가 힘들어서 ConfigurableBeanFactory의 메소드들과 AbstractBeanFactory의 필드와

AbstractBeanFactory

String[] getAliases(String name) 메소드 구현 살펴보기

BeanFactory 인터페이스에 있는 메소드들을 어떻게 구현했나 살펴보고 있습니다. [#M_ more.. | less.. | public String[] getAliases(String name) {        String beanName = transformedBeanName(name);        List aliases = new ArrayList();        boolean factoryPrefix = name.startsWith(FACTORY_BEAN_PREFIX);        String fullBeanName = beanName;

BeanFactory

boolean containsBean(String name) 메소드 구현 살펴보기.

BeanFactory 인터페이스에 있는 메소드의 구현을 살펴보겠습니다. String[] getAliases(String name) 메소드는 name으로 참조 되는 bean의 다른 이름들 즉 별명들을 String 배열로 반환하는 메소드 입니다. name으로 넘겨진 값이별명 중에 하나였다면 그에 상응하는 bean의 원래 name과별명들을 같이 반환합니다. 이때 원래 name은 배열의 제일처음에 위치합니다. 이 메소드 또한 현재 BeanFactory에서해당하는 bean을 찾지 못한다면

BeanFactory

BeanFactory 인터페이스 살펴보기

먼저 org.springframework.beans.factory.BeanFactory가 책임지는 것은 무엇들이 있는지 살펴 보겠습니다. BeanFactoryAPI를 살펴보겠습니다. 일반적으로BeanFactory는 XML 같은configuration data 안에 저장된 Bean에 대한 정의들을 읽어 들이고, org.springframwork.beans 패키지를 사용하여 Bean을설정합니다. BeanFactory 인터페이스가 가지고 있는 필드 입니다. Field Summary static String FACTORY_BEAN_PREFIX          Used

Application Context

Spring ApplicationContexts

Spring ApplicationContexts Spring 에플리케이션의 심장과 정신에 해당하는 ApplicationContext 안에서 실제 DI를 수행합니다. ApplicationContext는 BeanFactory를 특화시킨 것입니다.(ApplcationContext가 BeanFacotory를 상속받았죠.) BeanFactory는 Spring에서 사용되는 객체들의 레지스트리입니다. BeanFactory는 bean의 생성과 그들 간의 종속성 주입, 그리고 bean lookup(찾아 주기)를 담당합니다. ApplicationContext는 이러한 BeanFactory의 기능에 부가적인 기능을 추가시킨 것입니다. 보통 BeanFactory대신에  이것을