首頁 後端開發 XML/RSS教程 詳細介紹Spring使用多個xml設定檔的程式碼實例

詳細介紹Spring使用多個xml設定檔的程式碼實例

Mar 08, 2017 pm 04:53 PM

Spring使用多個xml設定文件,有需要的朋友可以參考下。

1, 在web.xml中定義contextConfigLocation參數.spring會使用這個參數載入.所有逗號分割的xml.如果沒有這個參數,spring預設載入web-inf/applicationContext.xml檔.

<context-param><param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,classpath*:conf/spring/applicationContext_hibernate.xml,
classpath*:conf/spring/applicationContext_staff*.xml,classpath*:conf/spring/applicationContext_security.xml
classpath*:conf/spring/applicationContext_modules*.xmlclasspath*:conf/spring/applicationContext_cti*.xml
classpath*:conf/spring/applicationContext_apm*.xml</param-value>
</context-param>
登入後複製

contextConfigLocation 參數定義了要裝入的Spring 設定檔。原理說明如下:

1.利用ServletContextListener 實作。
Spring 提供ServletContextListener 的實作類別ContextLoaderListener ,該類別可以作

為listener 使用,它會在建立時自動尋找WEB-INF/ 下的applicationContext.xrnl 檔案。因
此,如果只有一個設定文件,且檔案名稱為applicationContext.xml ,則只需在web.xml

檔案中增加如下程式碼即可:

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
登入後複製

如果有多個設定檔需要載入,則考慮使用檔名。由於ContextLoaderListener載入時,會尋找名為contextConfigLocation的參數。

因此,設定context-param時參數名稱應該是contextConfigLocation。
帶有多個設定檔的web.xml 檔案如下:

<1-- XML 文件的文件头二〉<?xml version="l.O" encoding="工80-8859-1"?>
< 1-- web.xm1 文件的DTD 等信息一〉<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems. 工口c.//DTD Web Application 2.3//EN"&#39;&#39;http://java.sun.com/dtd/web-app_2_3.dtd&#39;&#39;>
<web-app><!一确定多个配置文件>
<context-param><1-- 参数名为contextConfigLocation…〉
<param-name>contextConfigLocation</param-name><!一多个配置文件之间以,隔开二〉
<param-value>/WEB-工NF/daoContext.xml./WEB-INF/applicationContext.xml</param-value>
</context-param><!-- 采用listener创建Applicat工onContext 实例-->
<listener><listener-class>org.spr工ngframework.web.context.ContextLoader
Listener</listener-class></listener></web-app>
登入後複製

如果沒有contextConfigLocation 指定設定文件,則Spring 自動尋找application
Context. xrnl 設定檔。如果有contextConfigLocation,則利用該參數決定的設定檔。

此參數指定的一個字串, Spring 的ContextLoaderListener 負責將該字串分解成多個
配置文件,逗號","、空格" "及分號";"都可作為字符串的分割符。

如果既沒有applicationContext. xrnl 文件,也沒有使用contextConfigLocation參數確
定配置文件,或者contextConfigLocation確定的配置文件不存在。都會導致Spring 無法

載入設定檔或無法正常建立ApplicationContext 實例
設定一個spring為載入而設定的servlet可以達到相同效果.

採用load-on-startup Servlet實現。
Spring 提供了一個特殊的Servllet 類別: ContextLoaderServlet。該Servlet 啟動時,會

自動尋找WEB-IN日下的applicationContext. xml 檔案。
當然,為了讓ContextLoaderServlet 隨應用程式啟動而啟動,應將此Servlet 配置成

load-on-startup 的Servleto load-on-startup 的值小一點比較合適,因為要保證Application
Context 優先創建。如果只有一個設定文件,且檔案名稱為applicationContext. xml ,則在

web.xml 檔案中增加如下程式碼即可:

<servlet>
<servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class><load-on-startup>l</load-on-startup>
</servlet>
登入後複製

。帶有多個設定檔的web且nl 檔如下:

<!-- XML 文件的文件头--><?xml version="1.0" encoding="工SO-8859-1"?>
<! -- web.xml 文件的DTD 等信息→<!DOCTYPE web-appPUBLIC "-//Sun Microsystems , 工口c.//DTD Web Application 2.3//EN"
&#39;&#39;http://java.sun.com/dtd/web-app_2_3.dtd&#39;&#39;><web-app>
<&#39;一确定多个配置文件一><context-param>
<!-- 参数名为contextConfigLocation--><param-name>contextConfigLocation</param-name><!-- 多个配置文件之间以,隔开一〉
<param-value>/WEB-工NF/daoContext.xml, !WEB-工NF/applicationContext.xml</param-value>
</context-param><!一采用load-on-startup Servlet 创建Applicat工onContext 实例一〉
<servlet><servlet-narne>context</servlet-narne>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<!一下面值小一点比较合适,会优先加载一〉<load-on-startup>l</load-on-startup></servlet>
</web-app>
登入後複製

2, 使用匹配符

<context-param><param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value></context-param>
登入後複製

比如說用到Hibernate,則把hibernate相關的設定放在applicationContext- hibernate.xml這一個檔案,而一

些全域相關的資訊則放在applicationContext.xml,其他的設定類似.這樣就可以載入了,不必寫用空格或是逗號分開!

3, 如果使用struts載入多個spring設定檔.下面這個設定的其實也是contextConfigLocation變數.
struts-config.xml裡面加這個

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,,,,,,,"/>
登入後複製

4,如果是非j2ee應用直接程式載入.

ApplicationContext act = new ClassPathXmlApplicationContext(new
String[]{"bean1.xml","bean2.xml"});BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));
reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));
BeanFactory bf = (BeanFactory)reg;
登入後複製

最後,解釋以下classpath*:與classpath的差異:

classpath*:的出現是為了從多個jar檔案載入相同的檔案.classpath:只能載入找到的第一個檔案.


以上是詳細介紹Spring使用多個xml設定檔的程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

能否用PowerPoint開啟XML文件 能否用PowerPoint開啟XML文件 Feb 19, 2024 pm 09:06 PM

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

編程新範式,當Spring Boot遇上OpenAI 編程新範式,當Spring Boot遇上OpenAI Feb 01, 2024 pm 09:18 PM

2023年,AI技術已成為熱門話題,對各行業產生了巨大影響,程式設計領域尤其如此。人們越來越認識到AI技術的重要性,Spring社群也不例外。隨著GenAI(GeneralArtificialIntelligence)技術的不斷進步,簡化具備AI功能的應用程式的創建變得至關重要和迫切。在這個背景下,"SpringAI"應運而生,旨在簡化開發AI功能應用程式的過程,使其變得簡單直觀,避免不必要的複雜性。透過"SpringAI",開發者可以更輕鬆地建立具備AI功能的應用程序,將其變得更加易於使用和操作

利用Spring Boot以及Spring AI建構生成式人工智慧應用 利用Spring Boot以及Spring AI建構生成式人工智慧應用 Apr 28, 2024 am 11:46 AM

Spring+AI作為行業領導者,透過其強大、靈活的API和先進的功能,為各種行業提供了領先性的解決方案。在本專題中,我們將深入探討Spring+AI在各領域的應用範例,每個案例都將展示Spring+AI如何滿足特定需求,實現目標,並將這些LESSONSLEARNED擴展到更廣泛的應用。希望這個專題能對你有所啟發,更深入地理解和利用Spring+AI的無限可能。 Spring框架在軟體開發領域已經有超過20年的歷史,自SpringBoot1.0版本發布以來已有10年。現在,無人會質疑,Spring

spring編程式事務有哪些實作方式 spring編程式事務有哪些實作方式 Jan 08, 2024 am 10:23 AM

spring編程式事務的實作方式:1、使用TransactionTemplate;2、使用TransactionCallback和TransactionCallbackWithoutResult;3、使用Transactional註解;4、使用TransactionTemplate和@Transactional結合使用;5、自訂事務管理器。

win10使用者設定檔在哪? Win10設定使用者設定檔的方法 win10使用者設定檔在哪? Win10設定使用者設定檔的方法 Jun 25, 2024 pm 05:55 PM

最近有不少Win10系統的使用者想要更改使用者設定文件,但不清楚具體如何操作,本文將為大家帶來Win10系統設定使用者設定檔的操作方法吧! Win10如何設定使用者設定檔1、首先,按下「Win+I」鍵開啟設定介面,並點選進入「系統」設定。 2、接著,在打開的介面中,點擊左側的“關於”,再找到並點擊其中的“高級系統設定”。 3、然後,在彈出的視窗中,切換到「」選項欄,並點擊下方「用戶配

Spring如何設定事務隔離級別 Spring如何設定事務隔離級別 Jan 26, 2024 pm 05:38 PM

Spring設定事務隔離等級的方法:1、使用@Transactional註解;2、在Spring設定檔中設定;3、使用PlatformTransactionManager;4、在Java配置類別中設定。詳細介紹:1、使用@Transactional註解,在需要進行事務管理的類別或方法上加入@Transactional註解,並在屬性中設定隔離等級;2、在Spring設定檔等等。

有效的解決eclipse編輯器中亂碼問題的方法 有效的解決eclipse編輯器中亂碼問題的方法 Jan 04, 2024 pm 06:56 PM

解決eclipse亂碼問題的有效方法,需要具體程式碼範例近年來,隨著軟體開發的飛速發展,eclipse作為最受歡迎的整合開發環境之一,為眾多開發者提供了便利和高效。然而,使用eclipse時可能會遇到亂碼問題,這對於專案開發和程式碼閱讀帶來了困擾。本文將介紹一些解決eclipse亂碼問題的有效方法,並提供具體程式碼範例。修改eclipse檔案編碼設定:在eclip

在Ubuntu上安裝Helm 在Ubuntu上安裝Helm Mar 20, 2024 pm 06:41 PM

Helm是Kubernetes的一個重要元件,它透過將設定檔捆綁到一個稱為HelmChart的套件中來簡化Kubernetes應用程式的部署。這種方法使得更新單一設定檔比修改多個檔案更便捷。借助Helm,使用者可以輕鬆部署Kubernetes應用程序,簡化了整個部署過程,提高了效率。在本指南中,我將介紹在Ubuntu上實作Helm的不同方法。請注意:以下指南中的命令適用於Ubuntu22.04以及所有Ubuntu版本和基於Debian的發行版。這些命令經過測試,應該會在您的系統上正常運作。在U

See all articles