1. 程式人生 > >4、classpath: 與classpath*的區別

4、classpath: 與classpath*的區別

引用一篇很不錯的文章:http://blog.csdn.net/wxwzy738/article/details/16983935

首先 classpath是指 WEB-INF資料夾下的classes目錄

classpath 和 classpath* 區別

classpath:只會到你指定的class路徑中查詢檔案;

classpath*:不僅包含class路徑,還包括jar檔案中(class路徑)進行查詢.

 

舉個簡單的例子,在我的web.xml中是這麼定義的:classpath*:META-INF/spring/application-context.xml

那麼在META-INF/spring這個資料夾底下的所有application-context.xml都會被載入到上下文中,這些包括 META-INF/spring資料夾底下的 application-context.xml,META-INF/spring的子資料夾的application-context.xml以及 jar中的application-context.xml。

 

如果我在web.xml中定義的是:classpath:META-INF/spring/application-context.xml

那麼只有META-INF/spring底下的application-context.xml會被載入到上下文中。

 

專案實踐中用的比較多就是在web.xml檔案中配置spring監聽器,讓它讀取*.xml檔案,載入其中的bean.

舉例如下

首先:在ssh框架搭建好之後,在web.xml檔案中進行如下配置

<!--系統自動載入檔案 -->

這裡使用的是classpath*:的形式

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:ssh2-*.xml</param-value>
</context-param>

 <!--配置spring的context監聽器  -->

  <listener>

  <listener-class>org.springframework.web.context.ContextLoaderListener

</listener-class>

  </listener>

在專案的.classpath檔案中有如下的配置

補充:

1.)關於.classpath檔案的檢視可以去專案存放的位置(workplace)下檢視,也可以在eclipse中navigator檢視中進行檢視

2.)navigator檢視是在window---->show view----->other------>navigator中可以找到.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>

<!--系統預設的class檔案載入路徑,不能夠刪除-->
<classpathentry kind="src" path="src"/>

<!--自己新新增的class檔案載入路徑-->
<!--<classpathentry kind="src" path="config"/>-->

這裡可以新增classpath的路徑,例如我的配置檔案路徑時放在了與src同級的目錄下,你也可以指定自己的檔案存放路徑.

專案啟動時候,系統會依據.classpath檔案中指定的src的路徑依次查詢所要載入的配置檔案。並載入其中的bean.