在SSH專案中我們自動加載spring組態檔需要在web.xml檔案中添加一段配置:
Xml代碼 復制代碼
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:applicationContext-*.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
===========================================
ContextLoaderListener的作用就是啟動Web容器時,自動裝配ApplicationContext的配置資訊。因為它實作了ServletContextListener這個介面,在web.xml配置這個監聽器,啟動容器時,就會默認執行它實作的方法。至于ApplicationContext.xml這個組態檔部署在哪,如何配置多個xml檔案,書上都沒怎么詳細說明。現在的方法就是查看它的API檔案。在ContextLoaderListener中關聯了ContextLoader這個類,所以整個加載配置程序由ContextLoader來完成。看看它的API說明
第一段說明ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。如果查看ContextLoaderServlet的API,可以看到它也關聯了ContextLoader這個類而且它實作了HttpServlet。 這個介面
第二段,ContextLoader創建的是 XmlWebApplicationContext這樣一個類,它實作的介面是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->
BeanFactory這樣一來spring中的所有bean都由這個類來創建
第三段,講如何部署applicationContext的xml檔案,如果在web.xml中不寫任何引數配置資訊,默認的路徑是"/WEB-INF/applicationContext.xml,在WEB-INF目錄下創建的xml檔案的名稱必須是applicationContext.xml。如果是要自定義檔案名可以在web.xml里加入contextConfigLocation這個context引數:
Xml代碼
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext-*.xml
</param-value>
</context-param>
在<param-value> </param-value>里指定相應的xml檔案名,如果有多個xml檔案,可以寫在一起并一“,”號分隔。上面的applicationContext-*.xml采用通配符,比如這那個目錄下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等檔案,都會一同被載入
uj5u.com熱心網友回復:
配置了監聽器,在用到spring已定義的bean的類中需要GetBean方法來獲得,還是直接使用物件就可以uj5u.com熱心網友回復:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.smart</groupId>
<artifactId>chapter18try</artifactId>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
我也有這個問題,是pom.xml里面沒有加上war這行配置,配好了才生成lib包。但是只有專案路徑的target包里有,tomcat目錄下的仍然沒有,強行手動copy過去,ok
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/25030.html
標籤:中間件
上一篇:Java中文亂碼總結
下一篇:關于釘釘如何實作未打卡手機提醒?
