多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > Spring---簡介

Spring---簡介

來源:程序員人生   發(fā)布時(shí)間:2015-08-22 09:49:18 閱讀次數(shù):3947次

Spring是1個(gè)開源框架,Spring是于2003 年興起的1個(gè)輕量級的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中論述的部份理念和原型衍生而來。它是為了解決企業(yè)利用開發(fā)的復(fù)雜性而創(chuàng)建的。 spring為企業(yè)利用的開發(fā)提供了1個(gè)輕量級的解決方案。該解決方案包括:基于依賴注入的核心機(jī)制、基于AOP的聲明式事務(wù)管理、與多種持久層技術(shù)的整合,和優(yōu)秀的web mvc框架等。

1 spring構(gòu)架的組成結(jié)構(gòu)圖:

                                   



Core Container(核心容器)包括有Core、Beans、Context和Expression Language模塊。 

Core和Beans模塊:框架的基礎(chǔ)部份,提供IoC(反轉(zhuǎn)控制)和依賴注入特性。這里的基礎(chǔ)概念是BeanFactory,它提供對Factory模式的經(jīng)典實(shí)現(xiàn)來消除對程序性單例模式的需要,并真實(shí)的允許你從程序邏輯中分離出依賴關(guān)系和配置。

Context模塊:構(gòu)建于Core和Beans模塊基礎(chǔ)之上,提供了1種類似于JNDI注冊器的框架勢的對象訪問方法。Context模塊繼承了Beans的特性,然后添加了對國際化(例如資源綁定)、事件傳播、資源加載和對Context的透明創(chuàng)建的支持。Context模塊同時(shí)也支持J2EE的1些特性,例如EJB、JMX和基礎(chǔ)的遠(yuǎn)程處理。ApplicationContext接口是Context模塊的關(guān)鍵。

Expression Language模塊:Expression Language模塊提供了1個(gè)強(qiáng)大的表達(dá)式語言用于在運(yùn)行時(shí)查詢和操縱對象。它是JSP2.1規(guī)范中定義的unifed expression language的1個(gè)擴(kuò)大。該語言支持設(shè)置/獲得屬性的值、屬性的分配、方法的調(diào)用、訪問數(shù)組上下文(accessiong the context of arrays)、容器和索引器、邏輯和算術(shù)運(yùn)算符、命名變量和從Spring的IoC容器中根據(jù)名稱檢索對象。它也支持list投影、選擇和1般的list聚合。


JDBC模塊:該模塊提供了1個(gè)JDBC抽象層,它可以消除冗雜的JDBC編碼和解析數(shù)據(jù)庫廠商獨(dú)有的毛病代碼。

 ORM模塊:該模塊為流行的對象-關(guān)系映照API――JPA、JDO、Hibernate、iBatis等提供了1個(gè)交互層。利用ORM封裝包,可以混合使用所有Spring提供的特性進(jìn)行O/R映照。如前邊提到的簡單聲明性事物管理。


2使用Spring管理Bean

spring核心容器的理論:spring核心容器就是1個(gè)超級大工廠,所有的對象(包括數(shù)據(jù)源等基礎(chǔ)性資源)都會被當(dāng)做spring核心容器管理的對象----spring把容器中的1切對象統(tǒng)稱為Bean。只要是1個(gè)java類,spring就能夠管理該java類,并將它當(dāng)做Bean處理。<spring容器怎樣知道管理哪些Bean,XML配置文件(也可用注解),spring使用xml配置文件來管理容器中bean,spring對xml配置文件的文件名沒有任何要求,可以隨便定義。


<bean id="person" class="org.crazyit.app.service.Person"> <property name="axe" ref="axe"/> </bean> <bean id="axe" class="org.crazylit.app.service.Axe"/> <bean id="win" class="javax.swing.JFrame"/> <bean id="date" class="java.util.Date"/></span></span>


配置文件中的<bean>元素默許以反射方式來調(diào)用該類無參數(shù)的構(gòu)造器。spring框架通過反射根據(jù)<bean>元素的class屬性指定的類名創(chuàng)建了1個(gè)java對象,并以<bean>元素的id屬性的值為key,將該對象放入spring容器中---這個(gè)java對象就成了spring容器中bean。在spring配置文件中配置bean時(shí),class屬性的值必須是bean實(shí)現(xiàn)類的完全類名(必須帶包名),不能是接口、抽象類,否則沒法使用spring沒法使用反射創(chuàng)建該類的實(shí)例。

       上面配置文件中還包括1個(gè)<property>子元素,<property>子元素,<property>子元素通經(jīng)常使用于作為<bean>元素的子元素,它驅(qū)動spring在底層以反射履行1次setter方法。其中<property>的name屬性值決定履行那個(gè)setter方法,而value或ref決定履行setter方法的傳入?yún)?shù)。spring框架只要看到<property>子元素,就會在底層以反射方式履行1次setter。

       1 如果傳入?yún)?shù)是基本類型及其包裝類、string等類型,則使用value屬性指定傳入?yún)?shù)。

       2 如果以容器中其他bean作為傳入?yún)?shù),則使用ref屬性指定傳入?yún)?shù)。

<bean id="person" class="org.crazyit.app.service.Person"></span>

Spring框架解析該<bean>元素后將可以得到兩個(gè)字符串,其中idStr的值為"date",classStr的值為“java.util.Date”。

3 spring的優(yōu)點(diǎn)

1 低侵入式設(shè)計(jì),代碼的污染極地。
2 獨(dú)立于各種利用服務(wù)器,基于spring框架的利用。
3 它的IoC容器下降了,業(yè)務(wù)對象體替換的復(fù)雜性,提高了組件之間的解耦。
4 spirng的AOP支持允許將1些通用任務(wù)如安全、事務(wù)、日志等進(jìn)行集中式處理,從而提高了更好的復(fù)用。
5 spring的ORM到DAO提供了與第3方持久層框架的良好整合,并簡化了底層的數(shù)據(jù)庫訪問。
6 spring的高度開放性,其實(shí)不強(qiáng)迫利用完全依賴于spring,開發(fā)者可自由選用spring框架的部份或全部。


4總結(jié):

   spring就是1個(gè)容器,可以管理任何的java類



生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美黑人xxxx性高清版 | 亚洲欧洲一区 | 国产精品久久亚洲不卡4k岛国 | 欧美在线精品一区二区三区 | 鸥美性 | 久久精品高清 | 国产精品免费观看 | 国内精品久久国产大陆 | 国产毛片a | 日韩乱码视频 | xxxx性bbbb欧美视频 | 一级中文字幕 | 亚洲国产精品久久久久网站 | 欧美区一区二区三 | 久久精品国产线看观看亚洲 | 波多野结衣精品一区二区三区 | 12306午夜被窝播播影院yw188 | 伊人久久国产免费观看视频 | 一区二区三区视频免费观看 | 亚洲网站免费观看 | 欧美色欧美亚洲另类二区精品 | 日本免费爱爱视频 | 免费一级毛片在播放视频 | 高清国产性色视频在线 | 啪啪91视频| 美女福利视频国产片 | 久久影院在线观看 | 最新在线观看精品国产福利片 | 婷婷色九月综合激情丁香 | 伊人久久大香线蕉观看 | 亚洲国产欧美目韩成人综合 | 美国私人vps一夜爽毛片免费 | 欧美一区二区三区视频在线 | 国产成人久久精品 | 欧美yw精品日本国产精品 | 日韩精品一区二区三区视频 | 国内精品一级毛片免费看 | 久久天天躁夜夜躁狠狠躁2020 | 欧美性猛交xxxx乱大交be | 精品成人在线 | 亚洲欧洲天堂 |