亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring容器在Web項目中的使用方法

發布時間:2021-07-14 13:50:15 來源:億速云 閱讀:202 作者:chen 欄目:編程語言

本篇內容主要講解“Spring容器在Web項目中的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring容器在Web項目中的使用方法”吧!

Spring容器默認通過Xml配置文件定義bean以及他們之間的依賴關系。Xml文件中通過配置元數據來定義Bean和他對其他Bean的依賴。

DefaultListableBeanFactory的職責是實例化、初始化運用中的各種bean以及管理他們之間的關系。該實現使得Bean之間的關系可以通過Xml管理。

ApplicationContext類是Spring各種資源的集合體,包括消息資源處理(國際化處理)、事件傳遞、定義的各種Bean對象以及各種運用層的其他(ApplicationContext)。而ApplicationContext通過組合,有個BeanFactory屬性,所以ApplicationContext具備了DefaultListableBeanFactory所有操作。

Spring容器的初始化

Servlet通過ContextCloader類初始化ApplicationContext。

(1)初始化ApplicationContext,BeanFactory對象。

ConfigurableWebApplicationContextwac=(ConfigurableWebApplicationContext)
BeanUtils.instantiateClass("XmlWebApplicationContext.class");//默認是XmlWebApplicationContext.class

DefaultListableBeanFactorybeanFactory=newDefaultListableBeanFactory()

XML配置元數據(resource對象表示)

XML配置元數據通常就是指每個XML配置文件,由這些配置元數據共同組成了XML配置文件。為了加載XML配置文件生成ApplicationContext對象,可以將這些XML配置文件的文件路徑作為String數組傳給ApplicationContext,ApplicationContext會將每個XML配置元數據生成一個Resource對象。同時BeanFactroy會通過調用BeanDefinitionReader對象從多個XML文件讀取Bean的定義。

多個Bean定義(BeanDefinition對象表示)

Spring容器將管理多個Bean對象,而這些Bean對象通過xml配置文件中的Bean定義被創建。

在Spring系統中,Bean定義通過BeanDefinition對象表示,該對象封裝了相應的Bean定義的內容。每個Bean定義必須包含以下幾個內容

◆全限定類名(相對Classpath的全路徑文件名)

。。。。。

◆bean行為的定義:靜態工廠方法(factory-method)、工廠類(factory-bean)、依賴檢查(dependency-check)、自動裝配模式(autowire)、初始方法(init-method)、銷毀方法(destroy-method)、抽象屬性(abstract)、延遲加載(lazy-init)、孤子模式(singleton)等

◆創建bean的構造函數參數和屬性,例如設置連接池的連接數以及連接池的連接數大小等。

◆bean之間的依賴關系:parent、依賴屬性(depends-on)。

實例化Bean

◆用構造函數來實例化Bean。

只要設置Class屬性,且指定類一般都有一個默認的空構造器。這樣Spring容器就可以通過放射機制調用指定類的構造函數實例化指定類(相當于Java中的new操作符)。

< BEANID="REGINFOOPERATOR"PARENT="COM.LONGTOP.TEST.REGINFOOPERATOR">< /BEAN>

◆Factory-method靜態工廠方法實例化Bean。

必須設置Factory-method屬性來指定創建bean的靜態工廠方法名,且指定類相應方法必須聲明為static。

< BEANID="REGINFOOPERATOR"CLASS="COM.LONGTOP.TEST.REGINFOOPERATOR"FACTORY-METHOD="CREATEINSTANCE">
< /BEAN>

該定義不用指定返回對象的類型,僅僅指定了該類的工廠方法名,此例中createInstance聲明為static。

publicclassReginfoOperator{  privateStringname;  publicStringgetName(){  returnname;  }   publicvoidsetName(Stringname){  this.name=name;  }   publicReginfoOperator(){  }  publicReginfoOperator(Stringname){  this.name=name;  System.out.println("生成ReginfoOperator對象,name="+name);  }   publicstaticReginfoOperatorcreateInstance(){  returnnewReginfoOperator("hello");  }  }

◆Factory-bean工廠對象實例化bean。

用來實例的工廠方法位于另一個已有的bean中,容器將調用這個Bean的工廠方法創建新的指定bean。

<beanidbeanid="reginfoOperator" factoryfactory-method="createOperatorInstance"factory-bean="operatorFactory"> bean> <beanidbeanid="operatorFactory"class="com.longtop.test.OperatorFactory"> bean>

其中reginfoOperator的定義中,class屬性必須為空,factory-bean必須定義為包含工廠方法factory-method的bean名稱。

packagecom.longtop.test;   publicclassOperatorFactory{   publicOperatorFactory(){  }  publicReginfoOperatorcreateOperatorInstance(){  returnnewReginfoOperator("factory-bean");  }  }    publicclassReginfoOperator{  privateStringname;  publicStringgetName(){  returnname;  }   publicvoidsetName(Stringname){  this.name=name;  }   publicReginfoOperator(Stringname){  this.name=name;  System.out.println("生成ReginfoOperator對象,name="+name);  }  }

到此,相信大家對“Spring容器在Web項目中的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苏尼特右旗| 岱山县| 宝兴县| 建德市| 长治市| 囊谦县| 柳州市| 金湖县| 漳浦县| 加查县| 宁蒗| 买车| 石泉县| 定南县| 呼玛县| 孟村| 库伦旗| 同仁县| 顺昌县| 牟定县| 芜湖县| 灵璧县| 穆棱市| 景德镇市| 灵川县| 周宁县| 大冶市| 寻乌县| 本溪市| 铁岭县| 阿勒泰市| 武山县| 西贡区| 中方县| 汤阴县| 黑龙江省| 抚顺县| 江门市| 星座| 鄂尔多斯市| 元谋县|