Spring의 컨테이너인 ApplicationContext는 BeanFactory 인터페이스 하위 인터페이스이다.
BeanFactory는 Spring Container의 최상위 인터페이스이며 기동시에 등록되었던 Bean을 관리하고 조회하는 역할을 한다.

ApplicationContextBeanFactory의 모든 기능을 사용할 수 있기 때문에 주로 사용되고 있다.

ApplicationContext 의 구현체는 여러가지가 있다. 구현체에 따라 XML 혹은 자바의 Class 로 만들 수 있는데 빈 등록을 BeanDefinition 으로 추상화해서 생성하기 때문이다. 이를 통해 XML, Class 모두 Bean 이 생성된다

! ApplicationContext을 활용한 BeanName으로 객체 생성하기

 public class ExampleConfiguration implements ApplicationContextAware {
 	
    private ApplicationContext appContext;
     
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    	this.appContext = applicationContext;
    }
    
	public void example() {
		DataSource ds1 = (DataSource)appContext.getBean("DataSource");
		DataSource ds2 = appContext.getBean("dataSource", DataSource.class);
	}
}

위 예시처럼 ApplicationContextAware.class 를 상속받아 로직 서비스 내에서 getBean 메소드를 활용 해 생성된 Bean 객체를 가져올 수 있다.

profile
아메리카노 수혈 받는 중

0개의 댓글

Powered by GraphCDN, the GraphQL CDN