本篇內(nèi)容主要講解“Spring容器在Web項目中的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Spring容器在Web項目中的使用方法”吧!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),耀州企業(yè)網(wǎng)站建設(shè),耀州品牌網(wǎng)站建設(shè),網(wǎng)站定制,耀州網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,耀州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Spring容器默認通過Xml配置文件定義bean以及他們之間的依賴關(guān)系。Xml文件中通過配置元數(shù)據(jù)來定義Bean和他對其他Bean的依賴。
DefaultListableBeanFactory的職責(zé)是實例化、初始化運用中的各種bean以及管理他們之間的關(guān)系。該實現(xiàn)使得Bean之間的關(guān)系可以通過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配置元數(shù)據(jù)(resource對象表示)
XML配置元數(shù)據(jù)通常就是指每個XML配置文件,由這些配置元數(shù)據(jù)共同組成了XML配置文件。為了加載XML配置文件生成ApplicationContext對象,可以將這些XML配置文件的文件路徑作為String數(shù)組傳給ApplicationContext,ApplicationContext會將每個XML配置元數(shù)據(jù)生成一個Resource對象。同時BeanFactroy會通過調(diào)用BeanDefinitionReader對象從多個XML文件讀取Bean的定義。
多個Bean定義(BeanDefinition對象表示)
Spring容器將管理多個Bean對象,而這些Bean對象通過xml配置文件中的Bean定義被創(chuàng)建。
在Spring系統(tǒng)中,Bean定義通過BeanDefinition對象表示,該對象封裝了相應(yīng)的Bean定義的內(nèi)容。每個Bean定義必須包含以下幾個內(nèi)容
◆全限定類名(相對Classpath的全路徑文件名)
◆bean行為的定義:靜態(tài)工廠方法(factory-method)、工廠類(factory-bean)、依賴檢查(dependency-check)、自動裝配模式(autowire)、初始方法(init-method)、銷毀方法(destroy-method)、抽象屬性(abstract)、延遲加載(lazy-init)、孤子模式(singleton)等
◆創(chuàng)建bean的構(gòu)造函數(shù)參數(shù)和屬性,例如設(shè)置連接池的連接數(shù)以及連接池的連接數(shù)大小等。
◆bean之間的依賴關(guān)系:parent、依賴屬性(depends-on)。
實例化Bean
◆用構(gòu)造函數(shù)來實例化Bean。
只要設(shè)置Class屬性,且指定類一般都有一個默認的空構(gòu)造器。這樣Spring容器就可以通過放射機制調(diào)用指定類的構(gòu)造函數(shù)實例化指定類(相當(dāng)于Java中的new操作符)。
< BEANID="REGINFOOPERATOR"PARENT="COM.LONGTOP.TEST.REGINFOOPERATOR">< /BEAN>
◆Factory-method靜態(tài)工廠方法實例化Bean。
必須設(shè)置Factory-method屬性來指定創(chuàng)建bean的靜態(tài)工廠方法名,且指定類相應(yīng)方法必須聲明為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中,容器將調(diào)用這個Bean的工廠方法創(chuàng)建新的指定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項目中的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前標題:Spring容器在Web項目中的使用方法
標題鏈接:http://aaarwkj.com/article2/ihhooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、響應(yīng)式網(wǎng)站、云服務(wù)器、微信公眾號、網(wǎng)站制作、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)