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 對於緊耦合的類不好測試,但是松耦合的類就比較容易...