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

回到顶部