Struts+Spring+Hibernate整合的簡單實例
Spring是開源中間件,廣泛應用于java應用中。Spring借由IoC來實現對一整套開發工具箱的支持,他的每個組件都是可替換的。類似于主板上的器件,可以替換升級,以保證電腦的最優化。
IOC
Spring的核心機制是控制反轉IoC(inversion of control),也就是依賴注入(DI)。所謂依賴注入簡單講就是創建被調用工作不必要調用者完成,而是將控制權轉交給容器。平常在對象A調用對象B的時候,必須在程序中新建對象B,再傳入對象A的方法中去。現在我們取消了這兩者的親密耦合關系,在運行中使用set方法,將B存入對象A的屬性中。使這個程序保持了使用開放性(A調用新增的C等)和修改閉合性(增加C時不用修改A)。而Spring的作用在于其配置文件接管了我們的setter器方法,把我們需要依賴注入的東西(例如user.addFood(apple)),交給了xml配置文件來完成。
配置文件
Spring的配置文件applicationContext.xml文件,其中主要就是配置各種bean對象,給他們建立關系,下文配置為例,實際上是把orange代表的類com.spring.demo.Orange的實力作為參數傳給了com.spring.demo.Man類實例,需要注意的是Man類實例里必須有setFood(Food food) 這個方法做依賴注入。
Spring的兩種注入方式
Spring有兩種注入方式,分別是上文配置文件中所述的屬性注入和另一種叫做建構注入方式,建構注入方式需要的參數<constructor-arg ref="beanB" />而且有著和其父Bean類構造方法完全一致的注入順序。
這就要求父類的構造方法有這樣的結構
Spring的新特性
Spring從2.5版本開始支持Annotation特性,新特性更靈活方便配置Bean信息。
業務邏輯的處理
在業務邏輯中,首先需要提取XML配置的信息。使用ClassPathXmlApplicationContext("xxx.xml")的方式,加載xml配置文件:
ApplicationContext ctx = new ClassPathXmlApplicationContext("config.xml");
UserV2 peter = (UserV2) ctx.getBean("peter");
其后業務邏輯部分使用peter即可。
Web.xml配置
web.xml文件作為web project的配置文件,負責項目初始化和參數配置信息。一開始需要設置springframework的主要工作類 DispatcherServlet。這個類負責接受分發請求。我們需要給他設定優先啟動,同時設置servlet-mapping來設定URL請求。
Web下Spring的VC配置文件
不同于其他java項目, WEB-INF目錄下需要新建與初始類同名的配置文件[servlet-name]-servlet.xml配置文件(這里就是spring- servlet.xml),這個配置文件負責MVC中的V和C的配置。其中配置了控制器類C,視圖類V和映射到該控制器的URL信息。這樣我們的請求信息,經由設定控制器處理,轉發到設定的視圖顯示。為了處理提交數據,需要建立POJO類來存儲表單數據,在控制器類中對表單數據進行加載處理。同時在控制類中有個主要的方法ModelAndViewhandle方法,該方法返回一個附加跳轉信息的ModelAndView用來處理跳轉。
總體流程
在web方式下總體流程圖如下:

一些其他事情
容器:其實就是把類委托給另一個類來管理。例如一個類A里有兩個屬性分別存儲了B和C,A相對B和C來講就是容器。
POJO:Plain Old Java Object,就是一個普通java類的意思,可以視為有一些屬性,以及屬性的getter和setter訪問器的類。
AOP: Aspect-Oriented Programming,面向切面(方面)的編程。該模式為了減小模塊之間的耦合度而生,其將處理流程劃分成各種斷面,數據流過這些斷面,。
來自:http://blog.csdn.net/gongqingkui/article/details/8028812