问题描述
我的工程是用的springmvc+spring+mybatis,工程结构大概是:srcweb --WEB-INF --conf --lib --classes我的集成测试类在src目录里(有包名的,不是直接在src下),继承自spring的AbstractDependencyInjectionSpringContextTests。加载配置文件用的这个方法: @Override protected String[] getConfigLocations() { return new String[]{ "classpath*:sf-ibatis.xml" "classpath*:applicationContext-web.xml"}; }现在的问题是,由于我的配置文件,都放在 WEB-INF/conf里,所以我在加载配置文件时,用classpath:前缀是不行的。用classpath*吧,加载配置时倒是没报错,可是在用具体的bean的时候,就报找不到bin了。 如果用file前缀,并写绝对路径的话,写出来的这2个配置文件倒是能找到,可是在 sf-ibatis.xml里,由于有这么一段:<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="mybatisCfg.xml"/> </bean>mybatisCfg.xml文件也在WEB-INF/conf中,结果又报mybatisCfg.xml文件找不到了。。。。到底咋回事呢? 像我这样的工程结构,在写集成测试类时,应该注意些什么啊? 折腾我一天了,谢谢大家,帮我一下!感谢!不知道为啥我提交问题时,只能给1分。。。晕。。。
解决方案
重新规划下配置文件的存放位置吧对于老系统的项目,我都是直接把需要的XML配置文件单独拿出来放在test包下,在配置测试用例时直接用classpath,这样测试时直接找test包下的xml,web应用时还是走web-inf下的xml
解决方案二:
你应该放在WEB-INFclasses里面啊