Spring4之Spring整合Struts2框架

2021-12-30 02:45:01 字數 2575 閱讀 5614

spring4之spring整合struts2框架:一、spring在web中的使用通過註冊 servlet ***contextloaderlistener, web 應用程式可以載入 spring 的applicationcontext 物件。

這個***會將載入好的applicationcontext物件儲存到 web 應用程式的 servletcontext 中. 隨後, servlet 或可以訪問 servletcontext 的任意物件就能通過乙個輔助方法來訪問 spring 的應用程式上下文了.

web.xml檔案中註冊 spring 提供的 servlet ***contextloaderlistener, 它會在當前 web 應用被載入時將 spring 的 applicationcontext 儲存到 servletcontext 物件中.(伺服器載入是就建立ioc容器

contextloaderlistener***通過查詢 web 應用初始化引數contextconfiglocation來獲取 bean 配置檔案的位置. 如果有多個 bean 配置檔案, 可以通過逗號或空格進行分隔.contextconfiglocation 的預設值為 /web-inf/applicationcontext.xml. 若實際的檔案和預設值一致則可以省略這個 web 應用的初始化引數

contextconfiglocation

classpath:applicationcontext.xml

org.springframework.web.context.contextloaderlistener

注意:還需要額外的jar包 spring-web-4.0.0.release.jar 與spring-webmvc-4.0.0.release.jar

ioc容器在非web中可以直接建立(之前已經寫了)但在web中應該在web應用被伺服器載入時建立

struts2 通過外掛程式實現和 spring 的整合.

struts2 提供了兩種和 spring整合基本的策略:

第一種:將 action 例項交給 spring 容器來負責生成, 管理, 通過這種方式, 可以充分利用 spring 容器的 ioc 特性, 提供最好的解耦

第二種:利用 spring 外掛程式的自動裝配功能, 當 spring 外掛程式建立 action 例項後, 立即將 spring 容器中對應的業務邏輯元件注入 action 例項.

將 action 例項交給 spring 容器來負責生成, 管理, 通過這種方式, 可以充分利用 spring 容器的 ioc 特性, 提供最好的解耦

整合流程:

安裝 spring 外掛程式: 把struts2-spring-plugin-2.2.1.jar複製到當前 web 應用的 web-inf/lib 目錄下

在 spring 的配置檔案中配置 struts2 的 action 例項

在 struts 配置檔案中配置 action, 但其 class 屬性不再指向該 action 的實現類, 而是指向 spring 容器中 action 例項的 id

利用 spring 外掛程式的自動裝配功能, 當 spring 外掛程式建立 action 例項後, 立即將 spring 容器中對應的業務邏輯元件注入 action 例項.

配置自動裝配策略: spring 外掛程式的自動裝配可以通過struts.objectfactory.spring.autowire常量指定, 該常量可以接受如下值:

name: 根據屬性名自動裝配.

type: 根據型別自動裝配. 若有多個 type 相同的 bean, 就丟擲乙個致命異常; 若沒有匹配的 bean, 則什麼都不會發生, 屬性不會被設定

auto: spring 外掛程式會自動檢測需要使用哪種方式自動裝配方式

constructor: 同 type 類似, 區別是 constructor 使用構造器來構造注入所需的引數

整合流程:

安裝 spring 外掛程式

正常編寫 struts 配置檔案

編寫 spring 配置檔案, 在該配置檔案中不需要配置 action 例項

注意: 在 ioc 容器中配置 struts2 的 action 時, 需要配置 scope 屬性, 其值必須為 prototype

class="com.atguigu.spring.struts2.actions.personaction"

scope="prototype">

配置 struts2 的配置檔案: action 節點的 class 屬性需要指向 ioc 容器中該 bean 的 id

/success.jsp

struts2-spring-plugin-2.2.1.jar這個包的作用其實就是將struts的物件工廠(strutsobjectfactory)***換成了spring的物件工廠

spring 4 註解實體

1.建立實體 repository 適用於dao層 service 適用於service controller 適用於web service用於標註業務層元件 controller用於標註控制層元件 如struts中的action repository用於標註資料訪問元件,即dao元件 compon...

spring4整合rest風格配置

最近手頭上有個新專案,打算採用前端js渲染 後端呼叫restful風格api獲取資料。於是決定把之前乙個專案的springmvc改造成符合restful風格的框架。找了很多資料,也遇到不少坑,下面把相關心得整理下。很多人以為resutful是一種標準,要按照什麼標準才行,其實restful是一種軟體...

Spring4實戰記錄

1.依賴注入 di所帶來的最大收益 松耦合。如果乙個物件只通過介面 而不是具體實現或初始化過 程 來表明依賴關係,那麼這種依賴就能夠在物件本身毫不知情的情 況下,用不同的具體實現進行替換。松耦合 構造器注入 constructor injection 對於緊耦合的類不好測試,但是松耦合的類就比較容易...