使用SSH开发项目,为了使项目模块化,使用了多个spring配置文件
写了一个service
<bean id="testServiceImpl" class="service.impl.TestServiceImpl" >
<property name="queueSender">
<ref bean="queueSender"/>
</property>
</bean>
queueSender是放在另一个xml文件的bean
使用Junit测试service,代码:
@Test
public void test03(){
ApplicationContext spring = new ClassPathXmlApplicationContext("config/applicationContext.xml"});
TestServiceImpl service = (TestServiceImpl)spring.getBean("testServiceImpl");
service.send();
}
发现报错提示找不到引用的这个bean
后来发现是由于这里没有读取引用的bean所在的xml文件
读取所有用到的bean所在的xml文件,代码:
@Test
public void test03(){
ApplicationContext spring = new ClassPathXmlApplicationContext(
new String[]{"config/applicationContext.xml","classpath:config/ActiveMQ.xml"});
TestServiceImpl service = (TestServiceImpl)spring.getBean("testServiceImpl");
service.send();
}
在实际的运行中,应该直接引用其它配置文件的bean就可以了