Java架構師 - 基礎篇(持續更新中)

孤獨的俠客發表於2017-09-26

Java架構師-基礎篇

想成為一名Java架構師,以下概念是基礎中的基礎。(持續補充中)

1. JAVA SE, EE, ME

1998年12月份Sun公司公佈的Java 1.2版本,同時將它的名字改稱為“Java 2軟體開發工具箱1.2”。它的後續版本也通常被稱為“Java 2標準版”(J2SE)。在J2SE的推出的同時,還推出了“Java 2微縮版”(J2ME)和“Java 2企業版”(J2EE)。

  • J2SE為建立和執行Java程式提供最基本環境,是Java技術的核心和基礎。
  • J2EE為基於伺服器的分散式企業應用提供開發和執行環境,是目前Java技術應用最廣泛的部分。J2EE不僅繼承了J2SE中的許多優點,同時還提供了對EJB、JSP、Servlet以及XML技術的全面支援,降低了企業級開發的複雜度。
  • J2ME為嵌入式應用提供開發和執行環境,例如手機程式和PDA程式等

2. PetStore程式碼例項

  • PetStore 是 SUN 公司推出的一個寵物商店的系統,其唯一的目的不是讓你賣寵物,而是學習 J2EE 最新版本的特性的一個絕好例子。也有不少語言推出相應版本的寵物商店。

  • Petstore 的 J2EE 設計模式和元件框架思想是最值得學習的兩種技術,在 PetStore 中,真正有關寵物這個具體應用相關的程式碼很少,整個寵物店是構架在一系列可重用的 EJB 元件上,這種架構思想值得借鑑。

3. J2EE有什麼用?

  • J2EE用來建設大型的分散式企業級應用程式。或者用更時髦的名詞說就是“電子商務”應用程式。這些企業可能大到擁有中心資料庫伺服器,Web伺服器叢集和遍佈全國的辦公終端,也可能小到只不過想做一個網站。

4. 什麼是Servlet?

  • 一個Servlet是一個Java類。它處理Http(s)請求並作出響應,包括返回一個HTML頁面或轉交給其他URL處理又或是返回Json串。
  • Servlet必須執行在一個Web Container例如Tomcat中。
  • Servlet必須是javax.servlet.http.HttpServlet的子類,
  • 你可以繼承doGet()或者doPost()方法,兩者分別對應於Http(s)中的Get請求和Post請求。

5. 什麼是Java Bean, EJB, POJO, PO, VO DTO?

Java 帝國之Java bean(上)

Java 帝國之Java bean(下)

  • Java Bean: 其實就是遵守一定規範的類(物件),這些規範是:

    • 所有屬性為private
    • 提供預設構造方法
    • 提供getter和setter
    • 實現介面 java.io.Serializable介面;
    • 這個類需要能支援“事件”, 例如addXXXXListener(XXXEvent e), 事件可以是Click事件,Keyboard事件等等, 當然我們們也支援自定義的事件。
  • EJB: 在實際企業開發中,需要實現事務,安全,分散式,javabean就不好用了.SUN公司就開始往上面堆功能,這裡java bean就複雜為EJB;

  • EJB功能強大,但是太重了.此時出現DI(依賴注入),AOP(面向切面)技術,通過簡單的java bean也能完成EJB的事情,這裡的java bean簡化為POJO(plain old Java Object);DI和Ioc(控制反轉)是一個概念,是由Spring框架產生的技術。

  • 對於一個Bean 來說,如果你依賴別的Bean , 只需要宣告即可, spring 容器負責把依賴的bean 給“注入進去“, 起初大家稱之為控制反轉(IoC)

  • 後來 Martin flower 給這種方式起來個更好的名字,叫“依賴注入”。

  • 如果一個Bean 需要一些像事務,日誌,安全這樣的通用的服務, 也是隻需要宣告即可, spring 容器在執行時能夠動態的“織入”這些服務, 這叫AOP。

  • PO(persistence object):用於持久化時(例如儲存到資料庫或者快取);

  • VO(value object):用於前端展示使用(例如放置到JSP中解析或者給前端傳遞資料);

  • DTO(data transfer object):用於介面互相呼叫返回,資料傳輸(例如很多介面呼叫返回值或訊息佇列內容);

相關文章