Browse Source

Detect LoadTimeWeaver bean when declared through @Bean method as well

Issue: SPR-10856
pull/1031/head
Juergen Hoeller 10 years ago
parent
commit
437ffa6067
  1. 7
      spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java

7
spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java

@ -679,6 +679,13 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader @@ -679,6 +679,13 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader
*/
protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) {
PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors());
// Detect a LoadTimeWeaver and prepare for weaving, if found in the meantime
// (e.g. through an @Bean method registered by ConfigurationClassPostProcessor)
if (beanFactory.getTempClassLoader() == null && beanFactory.containsBean(LOAD_TIME_WEAVER_BEAN_NAME)) {
beanFactory.addBeanPostProcessor(new LoadTimeWeaverAwareProcessor(beanFactory));
beanFactory.setTempClassLoader(new ContextTypeMatchClassLoader(beanFactory.getBeanClassLoader()));
}
}
/**

Loading…
Cancel
Save