BeanPostProcessor 사용 예
Spring/Chapter 3 : 2007. 3. 13. 15:35
BeanPostProcessor 인터페이스는 다음과 같습니다.
이 인터페이스를 구현한 클래스들 입니다. 유용하니까 만들어 뒀을 텐데 언제 어떤걸 사용하면 좋을지는 나~~~중에 알아봐야겠네요.
Reference에서는 이 인터페이스를 사용하는 예제라기 보다는 BeanFactory와 Applcation Context에 등록하는 방법을 주로 다루고 있습니다.
Member 객체의 id 속성 값이 "혜인이"이라면 "이쁘니"로 값을 바꾸는 예제를 만들어 보겠습니다.
설정 내역은 다음과 같습니다.
KeesunPostProcessor 를 구현합니다.
그리고 설정 파일에 bean으로 등록 해주면 테스트가 통과 합니다. 1
현재 사용중인 container가 ApplicationContext 종류이기 때문에 간단하게 bean으로 등록 해두기만 하면 container가 알아서 BeanPostProcessor를 읽어서 적용시켜 줍니다.
BeanFactory를 사용할 경우에는 Reference에 나온대로 addBeanPostProcessor를 소스 코드에서 등록해 줘야 합니다.
- AbstractAdvisorAutoProxyCreator, AbstractAutoProxyCreator, ActionServletAwareProcessor, AdvisorAdapterRegistrationManager, AnnotationAwareAspectJAutoProxyCreator, ApplicationContextAwareProcessor, AspectJAwareAdvisorAutoProxyCreator, BeanNameAutoProxyCreator, DefaultAdvisorAutoProxyCreator, InstantiationAwareBeanPostProcessorAdapter, PersistenceAnnotationBeanPostProcessor, PersistenceExceptionTranslationPostProcessor, PortletContextAwareProcessor, RequiredAnnotationBeanPostProcessor, ScriptFactoryPostProcessor, ServletContextAwareProcessor, SimplePortletPostProcessor, SimpleServletPostProcessor
Reference에서는 이 인터페이스를 사용하는 예제라기 보다는 BeanFactory와 Applcation Context에 등록하는 방법을 주로 다루고 있습니다.
Member 객체의 id 속성 값이 "혜인이"이라면 "이쁘니"로 값을 바꾸는 예제를 만들어 보겠습니다.
@Test public void beanPostProcessing(){
Member keesun15 = getMember("keesun15");
assertTrue(keesun15.getId().equals("이쁘니"));
}
Member keesun15 = getMember("keesun15");
assertTrue(keesun15.getId().equals("이쁘니"));
}
설정 내역은 다음과 같습니다.
<bean id="keesun15" class="beanConfiguration.Member" >
<property name="id" value="혜인이">
</bean>
테스트는 실패합니다. keesun15 bean의 id 속성 값이 "혜인이"이기 때문입니다.<property name="id" value="혜인이">
</bean>
KeesunPostProcessor 를 구현합니다.
그리고 설정 파일에 bean으로 등록 해주면 테스트가 통과 합니다. 1
<bean class="beanConfiguration.KeesunPostProcessor" />
현재 사용중인 container가 ApplicationContext 종류이기 때문에 간단하게 bean으로 등록 해두기만 하면 container가 알아서 BeanPostProcessor를 읽어서 적용시켜 줍니다.
BeanFactory를 사용할 경우에는 Reference에 나온대로 addBeanPostProcessor를 소스 코드에서 등록해 줘야 합니다.
ConfigurableBeanFactory factory = new XmlBeanFactory(...);
// now register any needed BeanPostProcessor instances
MyBeanPostProcessor postProcessor = new MyBeanPostProcessor();
factory.addBeanPostProcessor(postProcessor);
// now start using the factory
// now register any needed BeanPostProcessor instances
MyBeanPostProcessor postProcessor = new MyBeanPostProcessor();
factory.addBeanPostProcessor(postProcessor);
// now start using the factory
- 이 객체를 받아와서 사용할 일은 없어 보이니까..id나 name을 굳이 적어줄 필요가 없겠네요. [본문으로]
'Spring > Chapter 3' 카테고리의 다른 글
MessageSource 사용 예 (0) | 2007.03.15 |
---|---|
MessageSource 인터페이스 (2) | 2007.03.15 |
3.8. The ApplicationContext (0) | 2007.03.14 |
'만들 수 없는 것'을 FactoryBean으로 만들기 (2) | 2007.03.14 |
BeanFactoryPostProcessor 사용 예 (0) | 2007.03.13 |
BeanPostProcessor 사용 예 (0) | 2007.03.13 |
3.7. Container extension points (0) | 2007.03.13 |
3.6. Bean definition inheritance (0) | 2007.03.12 |
ObjectFactoryCreatingFactoryBean 사용 예 (0) | 2007.03.12 |
BeanFactoryAware 사용 예 (1) | 2007.03.12 |
BeanFactoryAware (0) | 2007.03.12 |