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