在JavaEE乃至其它的java應(yīng)用程序中,容器顯得非常重要。web容器、applet容器、EJB容器等,可謂容器無處不在。從程序員的角度來說,IOC" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

超級IOC容器SuperContainer

系統(tǒng) 1587 0
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

  在JavaEE乃至其它的java應(yīng)用程序中,容器顯得非常重要。web容器、applet容器、EJB容器等,可謂容器無處不在。
  從程序員的角度來說,IOC容器是一個非常好的東西,他能使得我們非常靈活的管理組件及依賴關(guān)系。可以毫不夸張地說,Spring就是靠著一套功能全面、靈活的IOC容器發(fā)家致富的。作為EasyJWeb特性系列的第五篇文章,我們來看看EasyJWeb中的IOC容器的特點。
  如果您看過EasyJWeb1.0的簡介,就會發(fā)現(xiàn)他不僅僅是一個MVC。為了實現(xiàn)業(yè)務(wù)對象的很好管理,供核心MVC調(diào)用,在EasyJWeb中,我們提供了一個超級IOC容器。這個“超級”體現(xiàn)在,他屬于容器中的容器,他可以容納其它各種優(yōu)秀的容器,并把這些各自獨立的容器中的個體根據(jù)需要有機銜接配合起來,完成我們所需要做的事。
  當(dāng)然,EasyJWeb自己也提供了一個簡單的IOC容器,如果你不想或者沒接觸過其它的容器,那么你完全可以只用EasyJWeb的IOC容器,一樣能寫出非常優(yōu)雅、松藕合的JavaEE應(yīng)用。
容器的使用非常簡單,而且是完全可配置的,你可以根據(jù)需要把Spring容器、Guice容器、甚至EJB容器都納入到EasyJWeb的SuperContainer中來。讓他們在各自專業(yè)的領(lǐng)域里,為你工作。看代碼:

@Inject(name = " personDao " )
private GenericDAO Person > dao;
public void setDao(GenericDAO Person > dao) ... {
this .dao = dao;
}

  在上面的CrudAction示例中,PersonAction需要一個DAO才能工作,在這里我們聲明使用的是GenericDAO<person>,那么這個DAO在程序具體運行的過程中從哪兒來的,存放在哪兒?EasyJWeb都不關(guān)心這些事,你只需要通過@Inject這個標(biāo)簽,告訴我們要從超級IOC容器中啟一個名叫personDao的對象。這樣在程序運行的過程中,EasyJWeb會從超級IOC容器中查找名為personDao的對象,并注入到這個Action中,從而使得我們的Action能正常工作。<br>  實現(xiàn)依賴注入及控制反轉(zhuǎn),這不是什么奇特的事,每一個IOC框架都能實現(xiàn)這個功能。而不一樣的是,EasyJWeb不但能從自己的IOC容器中得到依賴對象,而且也可以從任何其它的IOC容器中得到這個對象。比如我們可以在Spring容器中配置這個personDao,或者是使用Guice來管理這個personDao,乃至直接把這個personDao存放在另外一個服務(wù)器的EJB容器中。EasyJWeb會自動到這些地方去查找,并能把他們協(xié)調(diào)起來。<br>  有了超級IOC容器,系統(tǒng)管理員不再擔(dān)心我們業(yè)務(wù)邏輯層組件的管理,老板也不需要擔(dān)心在需要更換IOC容器所發(fā)生的移植成本。<br>  EasyJWeb的IOC容器同樣實現(xiàn)了自動按名稱、按類別等注入,另外還實現(xiàn)了不同生命周期范圍的Bean管理。在默認(rèn)的情況下,支持singleton、prototype、session、request等類型的Bean。<br>  另外,在EasyJWeb中,包括中央處理器RequestProcessor、驗證器Validator、異常處理器ExceptionHandler在類的這些底層核心組件,都是通過EasyJWeb的超級容器來管理的。因此,你可以非常容易地根據(jù)自己的需要,更換EasyJWeb的一些部件。<br>  下面是在EasyJWeb超級容器中加入Spring容器的配置:<br></person>

bean name ="springContainer"
class
="org.springframework.web.context.support.XmlWebApplicationContext" >
property name ="configLocations" >
list >
value > WEB-INF/classes/application.xml value >
list >
property >
bean >
bean name ="innerSpringContainer"
class
="com.easyjf.container.impl.SpringContainer" >
property name ="factory" ref ="springContainer" />
bean >

可以在Spring容器中配置EasyJWeb的中央處理器,甚至可以配置事務(wù)等,如下面的Spring配置文件:

xmlversion="1.0"encoding="UTF-8" ?>
beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
="http://www.springframework.org/schema/aop"
xmlns:tx
="http://www.springframework.org/schema/tx"
xsi:schemaLocation
="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"
>
import resource ="jpa-base.xml" />
import resource ="service.xml" />
import resource ="dao.xml" />
aop:config >
aop:pointcut id ="easyjwebProcessor"
expression
="execution(*com.easyjf.web.RequestProcessor.process(..))" />
aop:advisor advice-ref ="txEasyjwebProcessorAdvice"
pointcut-ref
="easyjwebProcessor" />
aop:config >
tx:advice id ="txEasyjwebProcessorAdvice"
transaction-manager
="transactionManager" >
tx:attributes >
tx:method name ="*" propagation ="REQUIRED" read-only ="true" />
tx:attributes >
tx:advice >
bean name ="EasyJWeb-Processor" class ="com.easyjf.web.core.DefaultRequestProcessor" />
beans >


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1745130


超級IOC容器SuperContainer


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品久久久久久久久久久 | 荡女人人爱np粗口 | 欧美高清视频www夜色资源 | 亚洲一区视频在线播放 | 亚洲人和日本人jzz护士 | 一级特级欧美aaaaa毛片 | 欧美在线香蕉在线现视频 | 四虎永久在线观看免费网站网址 | 色97色| 大学生一级毛片免费看真人 | 亚洲tv精品一区二区三区 | 一区二区免费在线观看 | 国产精品国产福利国产秒拍 | 亚洲国产精品乱码一区二区三区 | 思99热精品久久只有精品 | a成人毛片免费观看 | 国产美女亚洲精品久久久毛片 | 国产美女亚洲精品久久久久久 | 亚洲欧美综合人成野草 | 成年香蕉大黄美女美女 | 寡妇野外啪啪一区二区 | 在线观看视频一区二区 | 特级一级毛片视频免费观看 | 国产一在线精品一区在线观看 | 免费看一级欧美毛片视频 | 日韩短视频 | 成人爽a毛片在线视频 | 日本精品在线 | 久草久操 | 四虎影院永久网址 | 超级乱淫视频播放日韩 | 日本中文一区 | 亚洲欧美日韩中文字幕在线 | 久草精品视频在线播放 | 四虎免费紧急入口观看 | 天天艹日日干 | 波多野结衣免费免费视频一区 | 日本欧美一区二区三区不卡视频 | 午夜性爽视频男人的天堂在线 | 日本免费不卡在线一区二区三区 | 色偷偷88888欧美精品久久久 |