我正在Spring中创建Junit测试用例。
private static BeanFactory servicefactory = null;
private static BookingProcessService bookingProcessService;
@BeforeClass
public static void setUpBeforeClass() throws Exception{
try{
String[] configFiles = {"applicationcontext-Service.xml","applicationcontext-Hibernate.xml","applicationContext-dao.xml"};
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(configFiles);
servicefactory = (BeanFactory) appContext;
bookingProcessService = (BookingProcessService) servicefactory.getBean("bookingProcessService");
}catch (Exception e){
e.printStackTrace();
}
}
这里的BookingProcessService是一个接口,它的实现类是BookingProcessServiceImpl.java。 在spring配置文件中,没有为其定义bean id。 有没有什么方法可以使用'bookingProcessService'来调用我的测试方法中的BookingProcessImp.java中编写的实际方法定义?
答案 0 :(得分:0)
如果你正在配置这个测试,我建议使用Annotations,会更清楚。
通常在“applicationcontext-Service.xml”中必须使用Implementation定义bean,并且是使用此类接口的类。
这样你就不会将代码与实现结合起来。
在这个例子中,简单必须做下一个:
@Autowired
private BookingProcessService bookingProcessService;
来自Spring的注释@Autowired将从您的xml配置“applicationcontext-Service.xml”执行IOC。