我对此很好奇。
这是" 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
答案 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,以便能够找到适当的上下文文件。