빈 펙토리와 애플리케이션 컨텍스트의 차이

이동욱

2021/03/24

Categories: 프로그래밍 - 자바

궁금증을 가지게 된 이유


Screen Shot 2021-03-24 at 11 38 22 PM

BEAN FACOTRY


Screen Shot 2021-03-24 at 11 41 55 PM

다행스럽게도 위와 같은 문서가 스프링 공식문서에서 제공되고 있었다. 차이점은 아래와 같다.

솔직히 이 부분은 아직 잘 모르겠다… 그래도 정리를 해둔 기억이 있으니 코딩을 하면서 관련된 API를 사용할 때 다시 한번 확인해봐야겠다.

빈 펙토리와 애플리케이션 컨텍스트


Screen Shot 2021-03-25 at 12 02 28 AM

Screen Shot 2021-03-25 at 12 02 42 AM

따라서 BeanFactory에서 사후 프로세서를 명시적으로 등록하려면, 다음의 예외 같이 프로그래밍 방식으로 addBeanPostProcessor를 호출해야한다.

DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
// populate the factory with bean definitions

// now register any needed BeanPostProcessor instances
factory.addBeanPostProcessor(new AutowiredAnnotationBeanPostProcessor());
factory.addBeanPostProcessor(new MyBeanPostProcessor());

// now start using the factory

처음에 생각했던 것 과는 달리 기능을 제공하지 않을 뿐, 코드 상으로 설정을 해주면 사용할 수는 있다.

일단 내가 생각하기에 가장 와닿는건 빈의 생명주기 관리를 할 수 없고, BeanPostProcessor를 자동으로 등록해주지 않는다는 것이다. 뭐 수동으로 등록해주면 되기는 하지만, 상당히 불편하다.

참고 문헌

>> Home