再說Java EE

    說到JavaEE(曾經叫J2EE)是什麼,你可能回答:JavaEE是一組規範,這麼說是沒錯,但是本身不認爲這個答案很是大、很是空麼?什麼又是規範?規範能組成應用麼?能在JVM中跑起來麼?要理解這些,先得從什麼是規範提及。java

規範    

    因爲Java開源,不論什麼開發人員都能寫代碼,而後提供給其它人使用,以數據庫訪問爲例,現在有MySQL、Oracle兩家數據庫廠商,各自用java寫本身的數據庫訪問流程代碼:數據庫

    MySQL提供了3個類,各自是:Connection、SQLStatement、File編程

    開發流程爲:學習

  • 使用Conenction獲取數據鏈接
  • 爲數據庫鏈接傳入SQLStatement
  • 依據SQLStatement返回數據的二進制數據
  • 使用File將二進制數據還原爲Table

    Oracle看到MySQL的數據庫開發這麼複雜,因而精簡開發,僅僅提供了兩個類:Connection、Tablespa

    開發流程爲:接口

  • 使用Connection數據庫鏈接
  • 從數據庫直接返回一張特定的完整表
  • 開發人員操做這張表就能夠

    後來,又出來了很是多數據庫:SQLServer、DB2……每個廠商都有提供了本身的類和開發流程,每出一種數據庫,java開發人員都需要又一次學習,數據庫方面開發愈來愈亂。Sun一看,這不行,這樣誰願意使用java,因而做爲權威的一方,加上幾個主流的數據庫支持廠商,商定了開發數據庫的核心內容,如:事務

  • 定義接口類:Driver、Connection、Result、Statement
  • 定義每個接口類的主題,如Driver負責驅動管理
  • 定義每個接口類中的接口,如Driver中有getConnection定義
  • 定義數據庫操做流程,如第一步爲載入驅動;第二步爲獲取數據庫鏈接

    爲何使用規範

    這個核心內容一出,你們都愜意了:開發

  • 開發人員愜意了,僅僅需要面向接口編程就能夠,再有新的數據庫也不用再新學習。
  • 數據庫廠商愜意了,原來僅僅會使用A數據庫的開發人員,現在可以使用己方公司的數據庫,潛在的利益。
  • Sun愜意了,開發人員再也不抱怨,社區變得更爲活躍,Java變得更爲流行。

    Sun說:既然你們都愜意,之後僅僅要是訪問數據庫,我們都依照這個作,這個就定義爲JDBC規範吧。通常爲了更明顯,Sun也會提供一組實現供廠商和開發人員借鑑。get

    以上關於Oracle和MySQL的純屬虛構,僅僅是爲了說明:什麼是規範,爲何要制定規範。io

    現有規範

    現有的JavaEE規範是:EJB、JSP、Servlet、JPA、JTA……,這些規範都是爲了應對一類開發所提出的接口定義。如,JPA爲關於持久化的;JTA是事務一方面的;JSP是表現層一方面的……

    將來規範

    隨着Java的不斷壯大,未來愈來愈多開發人員使用Java開發語音通訊,但是JavaEE中尚未這個規範,因而Oracle又站出來,叫上主流支持廠商說:爲了統一開發,減小開發成本,編寫語音通訊要有規範,咱們定義爲JVA(Java Voice API),當中包含3個接口類:IPManager、WaveManager、ResultManager,IPManager接口類中的接口有xx,凝視說明是yy……

    開發流程爲:

  • 使用IPManager進行三次握手
  • 發送WaveManager發送A方語音信息
  • 使用ResultManager監聽B方回信
  • ……

JavaEE應用

    那麼,什麼又是企業級應用?可以說用到JavaEE中不論什麼規範的,都可以稱之爲企業級應用,僅僅用到JSP,廣義上來講也叫企業級應用。

    規範是接口,僅僅有接口,是開發不了程序的,須要實現,因而你想開發數據庫訪問,必須要引入一種JDBC的實現:數據庫驅動的jar包;想開發JSF,必須引入MyFaces等jar包……

總結

    以上說明了什麼是規範,爲何要使用規範,接下來會逐個分析JavaEE中的常常使用的規範。

相關文章
相關標籤/搜索