l 使用「model」處理需求的核心運算或是商業邏輯。model不認識HTTP的協定,也無需理會request和response相關物件。
l 使用「view」呈現model處理後的結果,以呼叫端可以辨識的格式回傳。若呼叫端是瀏覽器,就以HTML文件回傳。
l 使用「controller」來處理和程式運行環境(context)相關的部分。以web容器而言,就是處理和HTTP相關的請求(request)及回應(response)。
因為model負責商業邏輯,通常會是效能最吃緊的地方的地方,因此Java EE除了Web容器外,允許model部署到獨立的EJB容器,成為分散式架構。但是在EJB 3大改版之前,其實程式碼不好寫,架構也笨重。
看準了這樣的機會,Spring使用了在EJB或企業板的Java規格裡看不到的「plain old Java objects (POJOs)」,提供了一個「輕量」級的解決方案,並標榜「簡化複雜Java程式開發(Spring simplifies Java development)」,因使開始吸引了眾多開發者的目光。
逐漸,EJB和JavaEE也開始改革自己的架構,EJB 3.0開始推出了類似Spring使用的POJO原件,並加入了「Dependency Injection (DI)」和「Aspect-Oriented Programming (AOP)」,其實也都源自Spring的啟發。這大概就是Spring和Java EE間的競合小故事。
回到Java的認證考試。原本Java EE的認證考試有5門,代表企業版的Java架構,分別是Web(1Z0-899)、EJB(1Z0-895)、JSF(1Z0-896)、WebService(1Z0-897)、JPA(1Z0-898);但在這次Oracle的大刀一揮下,全部在2019/03/31停考(https://javaxtalk.blogspot.com/2019/02/java.html)!取而代之的是「Java EE 7 Application Developer(1Z0-900)」,可以感受到這次Oracle推廣Java企業版的決心,或可稱為「Java EE的逆襲」吧。
沒有留言:
張貼留言