版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JAVA EE 6,最佳實(shí)踐: 從 Spring 遷移到,WTF ?!?,Bert Ertman荷蘭 Luminis 公司研究員荷蘭 Java 用戶組的負(fù)責(zé)人,同時(shí)還是一位 Java Champion,這是說(shuō)給誰(shuí)聽的?,您正在使用老版本的 Spring,卻不知怎樣向前發(fā)展Java EE 好像又火起來(lái)了,您應(yīng)當(dāng)趕上這樣的趨勢(shì)嗎?您喜歡《J2EE Design and Development》這本書,但它仍沒(méi)有過(guò)時(shí)嗎?,為什么要傾
2、聽我們的意見(jiàn)?,我們不為任何一家應(yīng)用服務(wù)器供應(yīng)商 工作我們也不是 Rod Johnson 的追隨者我們廣泛使用 J2EE、Spring 和新的 Java EE 技術(shù)針對(duì) Java EE 和 Spring 展開過(guò)無(wú)數(shù)次討論……,為什么要遷移?,Spring 是一項(xiàng)專有技術(shù)無(wú)論如何,從舊版的 Spring 升級(jí)需要大量的工作那,為什么不直接遷移到標(biāo)準(zhǔn)上來(lái)呢?,場(chǎng)景 A,Scenario A,但現(xiàn)在我們需要這樣的,首先讓我們澄清幾
3、個(gè)誤解……,Java EE 是否過(guò)于龐大了?,部署了應(yīng)用后的平臺(tái)啟動(dòng)時(shí)間JBoss AS 7 約 2 秒Glassfish V3 約 4 秒Tomcat 6 + Spring 約 4 秒Java EE 6 WAR 文件 < 100kb,但是我需要依賴注入,Java EE 6 引入 CDI 更強(qiáng)大的上下文 DI 模型讓平臺(tái)能夠以標(biāo)準(zhǔn)方式擴(kuò)展,但是我需要 AOP!,是嗎?難道您想讓你的代碼變得雜亂并難以理解嗎?或者,您
4、僅僅是使用了輕量級(jí)的 AOP, 即 Spring AOP 或 Java EE 規(guī)范中的攔截器?,我是否需要重型工具?,功能比較,* 不是 Java EE 規(guī)范的一部分,這一切均可使用普通輕量級(jí) Java EE 完成,rm -Rf spring*,?,當(dāng)然,這將十分有趣!實(shí)際情況呢?,當(dāng)然,這將十分有趣!實(shí)際情況呢?,典型的老版本 Spring 應(yīng)用,大量復(fù)雜的 XML 配置文件,無(wú)法使用注解舊式/過(guò)時(shí)的 ORM 解決方案
5、(JDBC 模板、Kodo、Toplink 等)過(guò)時(shí)的基于 Web MVC 的擴(kuò)展 (SimpleFormController 等),遷移路徑,升級(jí) Spring 版本替換 Spring 內(nèi)的舊框架(ORM、Web 框架)Spring 和 Java EE 容器并存完全替換 Spring移除 Spring 容器,遷移路徑,升級(jí) Spring 版本替換 Spring 內(nèi)的舊框架(ORM、Web 框架) Spring 和
6、Java EE 容器并存完全替換 Spring移除 Spring 容器,升級(jí) Spring 版本,升級(jí) Spring 運(yùn)行時(shí)(替換 JAR 文件)無(wú)代碼/配置變更,遷移路徑,升級(jí) Spring 版本 替換 Spring 內(nèi)的舊框架(ORM、Web 框架) Spring和Java EE容器并存完全替換 Spring移除 Spring 容器,替換 Spring 內(nèi)的舊框架,表示層,數(shù)據(jù)/集成層,Web MVC,任務(wù),Sprin
7、g JDBC 模板,Kodo,@AutoWired,業(yè)務(wù)層,JMS bean,@AutoWired,@AutoWired,JPA,JSF,尚未觸碰特定于 Spring 的 API,Spring bean,遷移路徑,升級(jí) Spring 版本 替換 Spring 內(nèi)的舊框架(ORM、Web 框架)Spring 和Java EE 容器并存完全替換 Spring移除 Spring 容器,,,myapp.war,,Spring 容器,Se
8、rvlet 容器,Spring 應(yīng)用程序,Spring bean,Spring bean,TX 管理器,AOP,ORM,,Java EE 6 應(yīng)用服務(wù)器,,CDI / EJB 容器,,myapp.war,CDI bean,會(huì)話 bean,TX 管理器,安全性,攔截器,JPA,Java EE 應(yīng)用程序,,Java EE 6 應(yīng)用服務(wù)器,,CDI / EJB 容器,,myapp.war,CDI bean,會(huì)話 bean,TX 管理器,安全性
9、,攔截器,JPA,混合在一起,,在 Java EE 容器內(nèi)運(yùn)行 Spring,表示層,數(shù)據(jù)/集成層,Spring bean,任務(wù),Spring JDBC 模板,業(yè)務(wù)層,JMS bean,@AutoWired,@AutoWired,JPA,JSF,Spring 和Java EE 容器并存,表示層,數(shù)據(jù)/集成層,Spring bean,任務(wù),Spring JDBC 模板,業(yè)務(wù)層,JMS bean,@AutoWired,@AutoWire
10、d,JPA,EJB,CDI,@Inject,@Inject,Spring DAO,Spring 配置,JSF / CDI bean,在此,我們不想了解 Spring,用 CDI 封裝 Spring,編寫 CDI 擴(kuò)展引導(dǎo) Spring 容器在 Spring 容器中查找 Spring Bean 并在 CDI 上下文中發(fā)布,CDI 擴(kuò)展示例,遷移路徑,升級(jí) Spring 版本 替換 Spring 內(nèi)的舊框架(ORM、Web 框架)S
11、pring 和 Java EE 容器并存完全替換 Spring移除 Spring 容器,完全替換 Spring,表示層,數(shù)據(jù)/集成層,Spring bean,任務(wù),Spring JDBC 模板,業(yè)務(wù)層,JMS bean,@AutoWired,@AutoWired,JPA,JSF,EJB,CDI,@Inject,@Inject,完全替換 Spring,表示層,數(shù)據(jù)/集成層,EJB 計(jì)時(shí)器,業(yè)務(wù)層,MDB,@AutoWired,@A
12、utoWired,JPA,JSF,EJB,CDI,@Inject,@Inject,Spring JDBC 模板,TX 層,將 Spring TX 和 DAO 遷移到 EJBTX 管理器在應(yīng)用服務(wù)器內(nèi)默認(rèn)情況下,EJB 是事務(wù)性的EJB 集成了 JPA,您是說(shuō) EJB 很好嗎?,一點(diǎn)沒(méi)錯(cuò)!EJB 只是容器管理的 POJO與 Spring bean 一樣,而且不需要容器配置……,DAO,Spring,DAO 配置,Java EE
13、替代方案,EJB,處理惰性加載,許多 Spring 應(yīng)用程序使用 Open-EntityManager-In-View 模式EJB 具有擴(kuò)展的持久性上下文更明確、更強(qiáng)大,LazyInitializationException 異常,修復(fù)惰性加載問(wèn)題,只要 bean 存在就保持 EntityManager 可用,沉迷于模板?,如果使用了 JDBC 模板將會(huì)怎樣?讓我們開始是否使用 ORM 的老生常談第 1 階段:拒絕第 2 階段
14、:最終將會(huì)完成遷移 ;-),使用 Java EE 內(nèi)的 JDBC 模板,可用簡(jiǎn)單的生成器方法注入可能是因?yàn)樗鼪](méi)有依賴 Spring 容器盡管有一些額外的依賴項(xiàng),模板生成器示例,遷移路徑,升級(jí) Spring 版本 替換 Spring 內(nèi)的舊框架(ORM、Web 框架)Spring 和Java EE 容器并存完全替換 Spring移除 Spring 容器,移除依賴項(xiàng),類路徑只需要包含 API 所需的類,并不需要包含框架類使得從
15、大約 40 個(gè)依賴性減少到 1 個(gè),測(cè)試方面如何?,Spring 在測(cè)試方面一直很出色DI 讓單元測(cè)試可行Spring 測(cè)試框架讓 Spring 容器內(nèi)測(cè)試可行靈活配置能滿足多環(huán)境下測(cè)試的需要,如何進(jìn)行測(cè)試?,Arquillian,使用 API 創(chuàng)建微部署部署到真正應(yīng)用服務(wù)器在服務(wù)器中運(yùn)行測(cè)試,Arquillian 示例,這一切都值得嗎?,Spring 之后還有后來(lái)者嗎?,我們相信,創(chuàng)新空間總是存在的最好是通過(guò)開源實(shí)現(xiàn)并
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GSM用戶卡遷移到TD-SCDMA網(wǎng)絡(luò)中的研究.pdf
- sybase數(shù)據(jù)庫(kù)遷移到oracle11g手冊(cè)
- vsan最佳實(shí)踐
- JavaEE多層架構(gòu)Struts2+Spring3+Hibernate3+Ajax的整合.pdf
- Blue Hawk系統(tǒng)遷移到Windows平臺(tái)的關(guān)鍵技術(shù)研究與實(shí)現(xiàn).pdf
- 數(shù)據(jù)挖掘算法介紹-huihoo
- 軟件先進(jìn)技術(shù)-huihoo
- 怎么把桌面移到d盤 把桌面轉(zhuǎn)移到d盤
- 降低發(fā)電煤耗最佳實(shí)踐
- 系統(tǒng)架構(gòu)優(yōu)化最佳實(shí)踐
- 綜合統(tǒng)計(jì)管理最佳實(shí)踐
- okr最佳實(shí)踐案例--linkedin
- okr最佳實(shí)踐案例--motorola
- 知識(shí)管理最佳實(shí)踐(20190214021447)
- okr最佳實(shí)踐案例--google
- 采購(gòu)環(huán)節(jié)內(nèi)控最佳實(shí)踐
- 戰(zhàn)略績(jī)效管理最佳實(shí)踐
- 血培養(yǎng)的最佳實(shí)踐
- 華為的最佳采購(gòu)實(shí)踐
- okr最佳實(shí)踐案例--uber
評(píng)論
0/150
提交評(píng)論