Spring 소스 코드--post ProcessBeanFactory 방법
1668 단어 스프링 소스 코드
spring 에 서 는 post Process Bean Factory 방법 을 구체 적 으로 실현 하지 않 았 으 며,Bean Post Processor 를 실현 하려 는 3 자 프레임 워 크 에 사용 되 었 습 니 다.사용 하고 자 하 는 사람 이 이 루어 진다.역할 은 BeanFactory 준비 작업 이 끝 난 후에 맞 춤 형 처 리 를 하 는 것 이다.보통 BeanPostProcessor 인터페이스의 실현 류 와 결합 하여 사용 하고 중요 한 자원(application 의 속성 과 ServletContext 와 유사 한 속성)을 주입 한다.마지막 으로 이러한 BeanPostProcessor 서브 인 터 페 이 스 를 무시 하 는 자동 조립 을 설정 해 야 합 니 다.
1.AbstractRefreshableWebApplication Context 류 의 post ProcessBeanFactory 방법
protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
beanFactory.addBeanPostProcessor(new ServletContextAwareProcessor(this.servletContext, this.servletConfig));
beanFactory.ignoreDependencyInterface(ServletContextAware.class);
beanFactory.ignoreDependencyInterface(ServletConfigAware.class);
WebApplicationContextUtils.registerWebApplicationScopes(beanFactory, this.servletContext);
WebApplicationContextUtils.registerEnvironmentBeans(beanFactory, this.servletContext, this.servletConfig);
} 2. ServletContextAware Processor 류 의 post ProcessBefore Initialization 방법
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (getServletContext() != null && bean instanceof ServletContextAware) {
((ServletContextAware) bean).setServletContext(getServletContext());
}
if (getServletConfig() != null && bean instanceof ServletConfigAware) {
((ServletConfigAware) bean).setServletConfig(getServletConfig());
}
return bean;
}