Java作為一門面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。
java三大框架分別是:1、Spring;2、Struts;3、Hibernate。其中,Spring是功能強大的組件粘合劑,可以幫助Java程序員解決許多在J2EE開發中常見的的問題,能夠將所有的java功能模塊用配置文件的方式組合起來成為一個完整的應用。
1、Spring
Spring是功能強大的組件粘合劑,可以幫助Java程序員解決許多在J2EE開發中常見的的問題,能夠將所有的java功能模塊用配置文件的方式組合起來成為一個完整的應用spring利用它的IOC和AOP來處理控制業務,負責對數據庫的操作。Spring將顯卡和CPU組裝在一起,相當于電腦的一個主板。
pring為JavaEE開發提供了一個輕量級的解決方案,可以說Spring是貫穿表現層、業務層、持久層,為javaEE提供一站式解決方案的框架,因此受到不少java開發者的青睞。
Spring框架是分模塊存在,除了最核心的Spring Core Container(即Spring容器)是必要模塊之外,其他模塊都是可選,視需要而定。本質上Spring可以總結為以下七個模塊:
· 核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉(IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
· Spring 上下文:Spring 上下文是一個配置文件,向 Spring框架提供上下文信息。Spring 上下文包括企業服務,例如JNDI、EJB、電子郵件、國際化、校驗和調度功能。
· Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向切面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持AOP。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。
· Spring DAO:JDBCDAO抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
· Spring ORM:負責框架中對象關系映射,提供相關ORM 接入框架的關系對象管理工具 [2] 。Spring 框架插入了若干個ORM框架,從而提供了 ORM 的對象關系工具,其中包括JDO、Hibernate和iBatisSQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
· Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基于 Web 的應用程序提供了上下文。所以,Spring框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。
· Spring MVC 框架:MVC框架是一個全功能的構建 Web應用程序的 MVC 實現。通過策略接口,MVC框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。模型由javabean構成,存放于Map;視圖是一個接口,負責顯示模型;控制器表示邏輯代碼,是Controller的實現。Spring框架的功能可以用在任何J2EE服務器中,大多數功能也適用于不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同J2EE 環境(Web 或EJB)、獨立應用程序、測試環境之間重用。
2、Struts
Struts是最早的java開源框架之一,它是MVC設計模式的一個優秀實現。 Struts定義了通用的Controller(控制器),通過配置文件(通常是 Struts -config.xml)隔離Model(模型)和View(視圖),以Action的概念以對用戶請求進行了封裝,使代碼更加清晰易讀。 Struts還提供了自動將請求的數據填充到對象中以及頁面標簽等簡化編碼的工具。 Struts能夠開發大型Java Web項目。
Struts結構:
在Struts中,已經由一個名為ActionServlet的Servlet充當控制器(Controller)的角色,根據描述模型、視圖、控制器對應關系的struts-config.xml的配置文件,轉發視圖(View)的請求,組裝響應數據模型(Model)。在MVC的模型(Model)部分,經常劃分為兩個主要子系統(系統的內部數據狀態與改變數據狀態的邏輯動作),這兩個概念子系統分別具體對應Struts里的ActionForm與Action兩個需要繼承實現超類。在這里,Struts可以與各種標準的數據訪問技術結合在一起,包括Enterprise Java Beans(EJB),JDBC與JNDI。在Struts的視圖(View)端,除了使用標準的JavaServer Pages(JSP)以外,還提供了大量的標簽庫使用,同時也可以與其他表現層組件技術(產品)進行整合,比如Velocity Templates,XSLT等。通過應用Struts的框架,最終用戶可以把大部分的關注點放在自己的業務邏輯(Action)與 映射關系的配置文件(struts-config.xml)中。
3、Hibernate
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的JavaEE架構中取代CMP,完成數據持久化的重任。
Hibernate語言特點:
· 將對數據庫的操作轉換為對Java對象的操作,從而簡化開發。通過修改一個“持久化”對象的屬性從而修改數據庫表中對應的記錄數據。
· 提供線程和進程兩個級別的緩存提升應用程序性能。
· 有豐富的映射方式將Java對象之間的關系轉換為數據庫表之間的關系。
· 屏蔽不同數據庫實現之間的差異。在Hibernate中只需要通過“方言”的形式指定當前使用的數據庫,就可以根據底層數據庫的實際情況生成適合的SQL語句。
· 非侵入式:Hibernate不要求持久化類實現任何接口或繼承任何類,POJO即可。