我相信有更好的方法,但将由您决定。
使用您的方法(实现InitializingBean),您将在bean定义阶段完成后调用bean创建代码
之后
豆子正在构建中。您的bean定义阶段非常简单(只需创建“myDispatcher”)。
我建议您在bean定义阶段创建/加载所有bean定义。实现这一点的一种方法是挂接到BeanFactory后处理器(实现BeanFacctoryPostProcessor)。在这个阶段,Spring允许您修改现有的bean定义,更重要的是,您可以添加更多bean定义。现在,当您离开这个阶段时,将在一个阶段中创建所有bean。这种方法非常自然:创建bean定义=>bean被创建并连接=>完成。
public class ContextAdder implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory)
throws BeansException {
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader((BeanDefinitionRegistry)factory);
// I) LOAD BY PATTERN MATCHING
//PathMatchingResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(factory.getBeanClassLoader());
//for (Resource resource : resourceResolver.getResources("com/.../*.xml"))
//reader.loadBeanDefinitions(resource);
// II) LOAD A SINGLE FILE AT A TIME
reader.loadBeanDefinitions(new ClassPathResource("com/../Optimus.xml""));
.....
}
也许你可以根据你的独特需求采用这个概念。