四、classpath: 與classpath*的區別

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

首先 classpath是指 WEB-INF文件夾下的classes目錄spring

classpath 和 classpath* 區別app

classpath:只會到你指定的class路徑中查找文件;框架

classpath*:不只包含class路徑,還包括jar文件中(class路徑)進行查找.eclipse

 

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

那麼在META-INF/spring這個文件夾底下的全部application-context.xml都會被加載到上下文中,這些包括 META-INF/spring文件夾底下的 application-context.xml,META-INF/spring的子文件夾的application-context.xml以及 jar中的application-context.xml。spa

 

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

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

 

項目實踐中用的比較多就是在web.xml文件中配置spring監聽器,讓它讀取*.xml文件,加載其中的bean.blog

舉例以下

首先:在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.

相關文章
相關標籤/搜索