在哪里" classpath *"是在Spring MVC Project中声明的?

时间:2014-09-01 02:18:19

标签: java spring classpath keyword

我对此很好奇。

这是" classpath *"声明?

跟随在web.xml中正常描述。

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
                classpath*:egovframework/springmvc/context-*.xml
            </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

我认为这个框架首先阅读web.xml。但是怎么知道这个关键字&#34; classpath *:&#34; ?

先谢谢你的回答:D

2 个答案:

答案 0 :(得分:3)

我相信spring docs很好地描述了类路径资源:

  

<强>使用ClassPathResource

     

此类表示应从中获取的资源   类路径。这使用了线程上下文类加载器,给定   类加载器,或用于加载资源的给定类。

     

此Resource实现支持解析为java.io.File if   类路径资源驻留在文件系统中,但不适用于   存放在jar中但尚未展开的classpath资源   (通过servlet引擎,或任何环境)到   文件系统。为了解决这个问题,各种资源实现   始终支持解析为java.net.URL。

     

ClassPathResource由Java代码使用显式创建   ClassPathResource构造函数,但通常会隐式创建   当你调用一个带有String参数的API方法时   意味着代表一条道路。对于后一种情况,JavaBeans   PropertyEditor将识别特殊前缀classpath:on   字符串路径,并在这种情况下创建一个ClassPathResource

答案 1 :(得分:0)

为了给你一些颜色,servlet容器将读取web.xml。这就是加载Spring Dispatcher Servlet并将这些参数传递给它们的原因。 Spring可以读取和解释字符串类路径*:egovframework / springmvc / context - * .xml,以便能够找到适当的上下文文件。