j2ee 也叫 javaee 是企業(yè)標(biāo)準(zhǔn)版主要用于網(wǎng)頁(yè)后臺(tái)一些邏輯判斷數(shù)據(jù)傳輸。Java EE 是 J2EE的一個(gè)新的名稱,之所以改名,目的還是讓大家清楚J2EE只是Java企業(yè)應(yīng)用。
創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)福安,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
在2004年底中國(guó)軟件技術(shù)大會(huì)Ioc微容器(也就是Jdon框架的實(shí)現(xiàn)原理)演講中指出:
我們需要一個(gè)跨J2SE/WEB/EJB的微容器,保護(hù)我們的業(yè)務(wù)核心組件(中間件),以延續(xù)它的生命力,而不是依賴J2SE/J2EE版本。
擴(kuò)展資料:
核心優(yōu)勢(shì):
J2EE容易讓初學(xué)者誤解是獨(dú)立于一套Java的技術(shù)方案。
從更深層次來(lái)看,Java誕生十年,多年前的業(yè)務(wù)組件還可以使用,軟件應(yīng)用不再由于語(yǔ)言的更迭革命帶來(lái)毀滅的打擊了。
當(dāng)然,Java EE 5重要改變還是:Java EE不再象以前那樣只注重大型商業(yè)系統(tǒng)的開發(fā),而是更關(guān)注小到中型系統(tǒng)的開發(fā),簡(jiǎn)化這部分系統(tǒng)開發(fā)步驟。
落實(shí)這一簡(jiǎn)化行動(dòng)的最大特征是在Java 5.0(Java 1.5)中加入Annotations,通過Annotations引入,降低Java EE開發(fā)時(shí),既要寫code,又要寫XML配置文件之苦。
來(lái)回照顧,疲于奔命,Annotations既是得益于C++語(yǔ)言,也是從開源項(xiàng)目xDoclet實(shí)踐中獲得經(jīng)驗(yàn)。
但是Annotations是一把雙刃劍,初學(xué)者用得不好,將會(huì)使得原本在XML中的Hard code(硬編碼) 寫進(jìn)入代碼Annotations,破壞代碼的簡(jiǎn)潔和靈活性,
當(dāng)然,Annotations的引入不只是解決XML配置,從大的概念說(shuō),是解決一個(gè)資源注射問題(XML屬于其中一個(gè)資源),在原理J2EE中,容器管理的資源都是由JNDI向應(yīng)用程序提供的,通過Annotations可以方便實(shí)現(xiàn)注射。
參考資料:
百度百科-JavaEE
框架1:Spring框架
該框架排名第一,因?yàn)樗哂虚_發(fā)復(fù)雜Web應(yīng)用程序的出色能力,而且,這些應(yīng)用程序因性能突出而廣受贊譽(yù)。它使Java開發(fā)人員能夠輕松地創(chuàng)建企業(yè)級(jí)應(yīng)用程序。
Web應(yīng)用程序開發(fā)人員可以證明Spring框架的能力。這就是Spring成為Java開發(fā)人員最愛的原因。下面的數(shù)據(jù)可以證明這一點(diǎn)。以下是開發(fā)者(選擇Java作為首選的三種編程語(yǔ)言之一)對(duì)Java框架的看法:
在開發(fā)人員的選擇中,Spring MVC和Spring Boot遠(yuǎn)遠(yuǎn)領(lǐng)先于其他Java技術(shù)。對(duì)于開發(fā)人員來(lái)說(shuō),這里的一大優(yōu)勢(shì)是他們可以不受其他模塊約束而專注于一個(gè)模塊,因?yàn)镾pring利用了控制反轉(zhuǎn)(IoC)。
這個(gè)框架的其他一些優(yōu)點(diǎn)是一個(gè)全面的配置模型,支持傳統(tǒng)數(shù)據(jù)庫(kù)和現(xiàn)代數(shù)據(jù)庫(kù)(如NoSQL),并通過支持面向方面編程來(lái)支持內(nèi)聚開發(fā)。它提供了一些模塊,如Spring MVC、Spring Core、Spring Boost、SpringTransaction等。
框架2:Hibernate框架
作為一個(gè)對(duì)象關(guān)系映射(ORM)數(shù)據(jù)庫(kù),它改變了我們以前查看數(shù)據(jù)庫(kù)的方式。盡管它不是一個(gè)全棧框架,但它可以極其輕松地為多個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)換數(shù)據(jù)。
它支持多個(gè)數(shù)據(jù)庫(kù)的能力使它很容易擴(kuò)展,無(wú)論應(yīng)用程序的大小或用戶的數(shù)量如何。它速度快、功能強(qiáng)大、易于擴(kuò)展、修改和配置。
框架3:Struts框架
該框架幫助自定義軟件開發(fā)人員創(chuàng)建易于維護(hù)的企業(yè)級(jí)應(yīng)用程序。這個(gè)框架的USP是它的插件。它們是JAR包,這意味著它們是可移植的。
Hibernate插件和Spring插件分別可以用于對(duì)象關(guān)系映射和依賴注入。使用此Java框架開發(fā)應(yīng)用程序可以減少處理時(shí)間,因?yàn)樗峁┝私M織良好的Java、JSP和Action類。
框架4:Play
使用該框架的頂尖公司包括LinkedIn、三星、衛(wèi)報(bào)、Verizon等。這只能說(shuō)明它的可信度。該框架提供了速度、可伸縮性和性能。
它的用戶界面非常簡(jiǎn)單,使移動(dòng)應(yīng)用程序開發(fā)人員可以快速理解它。它主要用于開發(fā)需要統(tǒng)一內(nèi)容創(chuàng)建的應(yīng)用程序。
框架5:Google Web Toolkit
這個(gè)框架用于客戶端開發(fā),類似JavaScript。它是一個(gè)開源的Java框架,這意味著它是免費(fèi)的。谷歌廣泛使用了這個(gè)框架,谷歌產(chǎn)品如AdSense、谷歌錢包、AdWords都是使用它編寫的。
借助GWT代碼,可以輕松地開發(fā)和調(diào)試Ajax應(yīng)用程序。Java開發(fā)人員更喜歡使用這個(gè)框架來(lái)編寫復(fù)雜的應(yīng)用程序。書簽、跨瀏覽器可移植性、歷史記錄和管理是它的一些特性。
閱讀完分享的Java的熱門框架后,希望你能有一個(gè)更清晰的了解。了解熱門框架不是一個(gè)挑戰(zhàn),但是找到適合你需求的框架是一個(gè)挑戰(zhàn)!
安博志遠(yuǎn)課程設(shè)置 1、C++ / Java 和面向?qū)ο笪覀€(gè)人以為學(xué)好C++,Java也就是舉手之勞。但是C++的學(xué)習(xí)曲線相當(dāng)?shù)亩?。不過,我覺得C++是最需要學(xué)好的語(yǔ)言了。參看兩篇趣文“C++學(xué)習(xí)信心圖” 和“21天學(xué)好C++”學(xué)習(xí)(麻省理工免費(fèi)課程)C++面向?qū)ο缶幊套x我的 “如何學(xué)好C++”中所推薦的那些書至少兩遍以上(如果你對(duì)C++的理解能夠深入到像我所寫的《C++虛函數(shù)表解析》或是《C++對(duì)象內(nèi)存存局(上)(下)》,或是《C/C++返回內(nèi)部靜態(tài)成員的陷阱》那就非常不錯(cuò)了)然后反思為什么C++要干成這樣,Java則不是?你一定要學(xué)會(huì)對(duì)比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,異常,虛函數(shù),等等。實(shí)踐任務(wù):用C++實(shí)現(xiàn)一個(gè)BigInt,支持128位的整形的加減乘除的操作。用C++封裝一個(gè)數(shù)據(jù)結(jié)構(gòu)的容量,比如hash table。用C++封裝并實(shí)現(xiàn)一個(gè)智能指針(一定要使用模板)?!对O(shè)計(jì)模式》必需一讀,兩遍以上,思考一下,這23個(gè)模式的應(yīng)用場(chǎng)景。主要是兩點(diǎn):1)鐘愛組合而不是繼承,2)鐘愛接口而不是實(shí)現(xiàn)。(也推薦《深入淺出設(shè)計(jì)模式》)實(shí)踐任務(wù):使用工廠模式實(shí)現(xiàn)一個(gè)內(nèi)存池。使用策略模式制做一個(gè)類其可以把文本文件進(jìn)行左對(duì)齊,右對(duì)齊和中對(duì)齊。使用命令模式實(shí)現(xiàn)一個(gè)命令行計(jì)算器,并支持undo和redo。使用修飾模式實(shí)現(xiàn)一個(gè)酒店的房間價(jià)格訂價(jià)策略——旺季,服務(wù),VIP、旅行團(tuán)、等影響價(jià)格的因素。學(xué)習(xí)STL的用法和其設(shè)計(jì)概念 - 容器,算法,迭代器,函數(shù)子。如果可能,請(qǐng)讀一下其源碼。實(shí)踐任務(wù): 嘗試使用面向?qū)ο?、STL,設(shè)計(jì)模式、和WindowsSDK圖形編程的各種技能 做一個(gè)貪吃蛇或是俄羅斯方塊的游戲。支持不同的級(jí)別和難度。做一個(gè)文件瀏覽器,可以瀏覽目錄下的文件,并可以對(duì)不同的文件有不同的操作,文本文件可以打開編輯,執(zhí)行文件則執(zhí)行之,mp3或avi文件可以播放,圖片文件可以展示圖片。學(xué)習(xí)C++的一些類庫(kù)的設(shè)計(jì),如: MFC(看看候捷老師的《深入淺出MFC》),Boost, ACE, CPPUnit,STL (STL可能會(huì)太難了,但是如果你能了解其中的設(shè)計(jì)模式和設(shè)計(jì)那就太好了,如果你能深入到我寫的《STL string類的寫時(shí)拷貝技術(shù)》那就非常不錯(cuò)了,ACE需要很強(qiáng)在的系統(tǒng)知識(shí),參見后面的“加強(qiáng)對(duì)系統(tǒng)的了解”)Java是真正的面向?qū)ο蟮恼Z(yǔ)言,Java的設(shè)計(jì)模式多得不能再多,也是用來(lái)學(xué)習(xí)面向?qū)ο蟮脑O(shè)計(jì)模式的最佳語(yǔ)言了(參看Java中的設(shè)計(jì)模式)。推薦閱讀《Effective Java》 and 《Java解惑》學(xué)習(xí)Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學(xué)習(xí)Java的設(shè)計(jì),如IoC等。Java的技術(shù)也是爛多,重點(diǎn)學(xué)習(xí)J2EE架構(gòu)以及JMS, RMI, 等消息傳遞和遠(yuǎn)程調(diào)用的技術(shù)。學(xué)習(xí)使用Java做Web Service (官方教程在這里)實(shí)踐任務(wù): 嘗試在Spring或Hibernate框架下構(gòu)建一個(gè)有網(wǎng)絡(luò)的Web Service的遠(yuǎn)程調(diào)用程序,并可以在兩個(gè)Service中通過JMS傳遞消息。C++和Java都不是能在短時(shí)間內(nèi)能學(xué)好的,C++玩是的深,Java玩的是廣,我建議兩者選一個(gè)。我個(gè)人的學(xué)習(xí)經(jīng)歷是:深究C++(我深究C/C++了十來(lái)年了)學(xué)習(xí)Java的各種設(shè)計(jì)模式。2、加強(qiáng)系統(tǒng)了解重要閱讀下面的幾本書:《Unix編程藝術(shù)》了解Unix系統(tǒng)領(lǐng)域中的設(shè)計(jì)和開發(fā)哲學(xué)、思想文化體系、原則與經(jīng)驗(yàn)。你一定會(huì)有一種醍醐灌頂?shù)母杏X?!禪nix網(wǎng)絡(luò)編程卷1,套接字》這是一本看完你就明白網(wǎng)絡(luò)編程的書。重要注意TCP、UDP,以及多路復(fù)用的系統(tǒng)調(diào)用select/poll/epoll的差別?!禩CP/IP詳解 卷1:協(xié)議》- 這是一本看完后你就可以當(dāng)網(wǎng)絡(luò)黑客的書。了解以太網(wǎng)的的運(yùn)作原理,了解TCP/IP的協(xié)議,運(yùn)作原理以及如何TCP的調(diào)優(yōu)。實(shí)踐任務(wù):理解什么是阻塞(同步IO),非阻塞(異步IO),多路復(fù)用(select, poll, epoll)的IO技術(shù)。寫一個(gè)網(wǎng)絡(luò)聊天程序,有聊天服務(wù)器和多個(gè)聊天客戶端(服務(wù)端用UDP對(duì)部分或所有的的聊天客戶端進(jìn)Multicast或Broadcast)。寫一個(gè)簡(jiǎn)易的HTTP服務(wù)器?!禪nix網(wǎng)絡(luò)編程卷2,進(jìn)程間通信》信號(hào)量,管道,共享內(nèi)存,消息等各種IPC…… 這些技術(shù)好像有點(diǎn)老掉牙了,不過還是值得了解。實(shí)踐任務(wù):主要實(shí)踐各種IPC進(jìn)程序通信的方法。嘗試寫一個(gè)管道程序,父子進(jìn)程通過管道交換數(shù)據(jù)。嘗試寫一個(gè)共享內(nèi)存的程序,兩個(gè)進(jìn)程通過共享內(nèi)存交換一個(gè)C的結(jié)構(gòu)體數(shù)組。學(xué)習(xí)《Windows核心編程》一書。把CreateProcess,Windows線程、線程調(diào)度、線程同步(Event, 信號(hào)量,互斥量)、異步I/O,內(nèi)存管理,DLL,這幾大塊搞精通。實(shí)踐任務(wù): 使用CreateProcess啟動(dòng)一個(gè)記事本或IE,并監(jiān)控該程序的運(yùn)行。把前面寫過的那個(gè)簡(jiǎn)易的HTTP服務(wù)用線程池實(shí)現(xiàn)一下。寫一個(gè)DLL的鉤子程序監(jiān)控指定窗口的關(guān)閉事件,或是記錄某個(gè)窗口的按鍵。有了多線程、多進(jìn)程通信,TCP/IP,套接字,C++和設(shè)計(jì)模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP服務(wù)器(帶線程池)實(shí)踐任務(wù): 通過以上的所有知識(shí),嘗試 寫一個(gè)服務(wù)端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁盤I/O和網(wǎng)絡(luò)I/O可能會(huì)很有問題,想一想怎么解決,另外,請(qǐng)注意網(wǎng)絡(luò)傳輸最大單元MTU)了解BT下載的工作原理,用多進(jìn)程的方式模擬BT下載的原理。3、系統(tǒng)架構(gòu)負(fù)載均衡。HASH式的,純動(dòng)態(tài)式的。(可以到Google學(xué)術(shù)里搜一些關(guān)于負(fù)載均衡的文章讀讀)多層分布式系統(tǒng) – 客戶端服務(wù)結(jié)點(diǎn)層、計(jì)算結(jié)點(diǎn)層、數(shù)據(jù)cache層,數(shù)據(jù)層。J2EE是經(jīng)典的多層結(jié)構(gòu)。CDN系統(tǒng)– 就近訪問,內(nèi)容邊緣化。P2P式系統(tǒng),研究一下BT和電驢的算法。比如:DHT算法。服務(wù)器備份,雙機(jī)備份系統(tǒng)(Live-Standby和Live-Live系統(tǒng)),兩臺(tái)機(jī)器如何通過心跳監(jiān)測(cè)對(duì)方?集群主結(jié)點(diǎn)備份。虛擬化技術(shù),使用這個(gè)技術(shù),可以把操作系統(tǒng)當(dāng)應(yīng)用程序一下切換或重新配置和部署。學(xué)習(xí)Thrift,二進(jìn)制的高性能的通訊中間件,支持?jǐn)?shù)據(jù)(對(duì)象)序列化和多種類型的RPC服務(wù)。學(xué)習(xí)Hadoop。Hadoop框架中最核心的設(shè)計(jì)就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡(jiǎn)單的一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫,為分布式計(jì)算存儲(chǔ)提供了底層支持。了解NoSQL數(shù)據(jù)庫(kù)(有人說(shuō)可能是一個(gè)過渡炒作的技術(shù)),不過因?yàn)槌笠?guī)模以及高并發(fā)的純動(dòng)態(tài)型網(wǎng)站日漸成為主流,而SNS類網(wǎng)站在數(shù)據(jù)存取過程中有著實(shí)時(shí)性等剛性需求,這使得目前NoSQL數(shù)據(jù)庫(kù)慢慢成了人們所關(guān)注的焦點(diǎn),并大有成為取代關(guān)系型數(shù)據(jù)庫(kù)而成為未來(lái)主流數(shù)據(jù)存儲(chǔ)模式的趨勢(shì)。當(dāng)前NoSQL數(shù)據(jù)庫(kù)很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級(jí)版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。寫了那么多,回顧一下,覺得自己相當(dāng)?shù)挠谐删透?。希望大家不要嚇著,我自己這十來(lái)年也在不斷地學(xué)習(xí),今天我也在學(xué)習(xí)中,人生本來(lái)就是一個(gè)不斷學(xué)習(xí)和練級(jí)的過程。不過,一定有漏的,也有不對(duì)的,還希望大家補(bǔ)充和更正。 關(guān)鍵字: 程序員高級(jí)深入