如何解决关于 spring applicationContext
我了解到在创建 spring applicationContext 时, 上下文本身将被注册为 bean。 所以我做了一个简单的代码并期望 applicationContext 作为一个 bean。 但是,当我使用如下的 java 代码创建 applicationContext 时, 我无法将 applicationContext 视为 bean .. ====代码==== ApplicationContext parent = new GenericXmlApplicationContext(basePath + "parentContext.xml");
GenericApplicationContext child = new GenericApplicationContext(parent);
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(child);
reader.loadBeanDefinitions(basePath+"childContext.xml");
child.refresh();
Printer printer = child.getBean("printer",Printer.class);
assertNotNull(printer);
for(String bean : parent.getBeanDefinitionNames()) {
System.out.println("TTTT : "+ bean +" : "+parent.getBean(bean).getClass().getName());
}
====================== 我都试过父母和孩子。谁能解释为什么 applicationContext 本身不是 注册为bean?
解决方法
我会尝试将此行添加到 parentContext.xml:
<import resource="contextSub.xml"/>
并在java代码中添加这个注解
@Before
public void setup(){
ApplicationContext parent = new GenericXmlApplicationContext(basePath + "parentContext.xml");
GenericApplicationContext child = new GenericApplicationContext(parent);
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(child);
reader.loadBeanDefinitions(basePath+"childContext.xml");
child.refresh();
Printer printer = child.getBean("printer",Printer.class);
assertNotNull(printer);
for(String bean : parent.getBeanDefinitionNames()) {
System.out.println("TTTT : "+ bean +" : "+parent.getBean(bean).getClass().getName());
}
如果这有帮助,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。