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.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章