spring-context.xml的位置
当我在tomcat上运行我的应用程序时,spring-context.xml文件位于
/WEB-inf/spring-context.xml
还行吧。但是运行junit测试,我必须为它提供spring-test-context.xml的位置,如下所示:
@ContextConfiguration(locations={"classpath:/spring-test-context.xml"})
唯一可行的方法是如果文件位于
/src/spring-context.xml
如何获得我的应用程序以在同一位置查找我的spring-context文件?以便它可以与junit testes一起使用并部署在tomcat上?
我尝试了此操作,但由于找不到任何bean,这给了我很多错误,但并未说明找不到文件。
classpath:/WEB-INF/spring-test-context.xml
回答:
正如duffymo所暗示的那样,Spring TestContext Framework(TCF)假定默认情况下字符串位置在类路径中。有关详细信息,请参见ContextConfiguration的JavaDoc 。
但是请注意,你还可以使用Spring的资源抽象(即,使用“ file:”前缀)在文件系统中使用绝对路径或相对路径指定资源。你可以在JavaDoc中找到有关Spring的ModifyLocations()
方法的详细信息AbstractContextLoader
。
因此,例如,如果XML配置文件位于"src/main/webapp/WEB-INF/spring-config.xml"
项目文件夹中,则可以将位置指定为相对文件系统路径,如下所示:
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring-config.xml")
或者,你可以将Spring配置文件存储在类路径(例如src/main/resources
)中,然后通过Spring MVC配置中的类路径引用它们-例如:
<context-param> <param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
使用这种方法,你的测试配置将看起来像这样(注意,前导斜杠表示资源位于类路径的根中):
@ContextConfiguration("/spring-config.xml")
以上是 spring-context.xml的位置 的全部内容, 来源链接: utcz.com/qa/432375.html