程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring中多設置裝備擺設文件及援用其他bean的方法

Spring中多設置裝備擺設文件及援用其他bean的方法

編輯:關於JAVA

Spring中多設置裝備擺設文件及援用其他bean的方法。本站提示廣大學習愛好者:(Spring中多設置裝備擺設文件及援用其他bean的方法)文章只能為提供參考,不一定能成為您想要的結果。以下是Spring中多設置裝備擺設文件及援用其他bean的方法正文


Spring多設置裝備擺設文件有甚麼利益?

依照目標、功效去拆分派置文件,可以進步設置裝備擺設文件的可讀性與保護性,如將設置裝備擺設事務治理、數據源等少修改的設置裝備擺設與設置裝備擺設bean零丁離開。

Spring讀取設置裝備擺設文件的幾種方法:

1、應用Spring本身供給的ApplicationContext方法讀取

在Java法式中可使用ApplicationContext兩個完成類ClassPathXmlApplicationContext和FileSystemXmlApplicationContext來讀取多個設置裝備擺設文件,他們的結構器都可以吸收一個設置裝備擺設文件數組。

如: ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocations);與采取FileSystemXmlApplicationContext創立ApplicationContext的方法類似,差別僅在於兩者搜刮設置裝備擺設文件的途徑分歧:ClassPathXmlApplicationContext經由過程CLASSPATH途徑搜刮設置裝備擺設文件:而FileSystemXmlApplicationContext則在以後途徑搜刮設置裝備擺設文件。

辦法一:在初始化時保留ApplicationContext對象

代碼:

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); 
ac.getBean("beanId"); 

解釋:

這類方法實用於采取Spring框架的自力運用法式,須要法式經由過程設置裝備擺設文件手工初始化Spring的情形。

辦法二:經由過程Spring供給的對象類獲得ApplicationContext對象

代碼:

import org.springframework.web.context.support.WebApplicationContextUtils; 
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc) 
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc) 
ac1.getBean("beanId"); 
ac2.getBean("beanId"); 

解釋:

這類方法合適於采取Spring框架的B/S體系,經由過程ServletContext對象獲得ApplicationContext對象,然後在經由過程它獲得須要的類實例。

下面兩個對象方法的差別是,前者在獲得掉敗時拋出異常,後者前往null。

辦法三:繼續自籠統類ApplicationObjectSupport

解釋:

籠統類ApplicationObjectSupport供給getApplicationContext()辦法,可以便利的獲得到ApplicationContext。Spring初始化時,會經由過程該籠統類的setApplicationContext(ApplicationContext context)辦法將ApplicationContext 對象注入。

辦法四:繼續自籠統類WebApplicationObjectSupport

解釋:

相似下面辦法,挪用getWebApplicationContext()獲得WebApplicationContext

辦法五:完成接口ApplicationContextAware

解釋:

完成該接口的setApplicationContext(ApplicationContext context)辦法,並保留ApplicationContext 對象。Spring初始化時,會經由過程該辦法將ApplicationContext 對象注入。

以上辦法合適分歧的情形,請依據詳細情形選用響應的辦法。

2、應用web工程啟動時加載

在web.xml中設置裝備擺設web容器啟動是主動加載哪些設置裝備擺設文件:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/spring-core.xml</param-value>
</context-param> 
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> 

多個的時刻可以用 * 號來取代。

<servlet> 
<servlet-name>app</servlet-name> 
<servlet-class> 
org.springframework.web.servlet.DispatcherServlet 
</servlet-class> 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/applicationContext*.xml,/WEB-
INF/user_spring.xml</param-value>
</context-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 

3、Xml設置裝備擺設文件中導入其他設置裝備擺設文件

在/WEB-INF/applicationContext.xml設置裝備擺設運用辦事去加載,可以在applicationContext.xml頂用import引入其他的設置裝備擺設文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.2.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<import resource="spring-servlet.xml"/>
<import resource="spring-security.xml"/>
<import resource="spring-hibernate.xml"/>
<import resource="spring-redis.xml"/>
</beans> 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved