struts2和spring的兩種整合方式

2021-07-09 06:23:20 字數 1387 閱讀 8754

首先,來看看如何讓spring 來管理action.

在struts.xml中加入

"struts.objectfactory" value="spring" />

有兩種整合方式:

(1) 把action配置在beans.xml裡,利用spring初始化action的bean:

將struts的業務邏輯控制器類配置在spring的配置檔案中,action中引用的業務類一併注入。

(這樣的處理,必須將action類的scope配置成property)

xml**

接著,在struts.xml或者等效的struts2配置檔案中配置action時,指定的class屬性為spring配置檔案中相應bean的id或者name值。示例如下:

xml**

/index.jsp

(2) 不需要在beans.xml裡配置action,利用struts-spring_plugin外掛程式自動初始化action:

業務類在spring配置檔案中配置,action不需要配置,struts2的action像沒有整合spring之前一樣配置,的class屬性指定業務邏輯控制器類的全限定名。

action中引用的業務類不需要自己去初始化,struts2的spring外掛程式會使用bean的自動裝配將業務類注入進來,其實action也不是struts2建立的,而是struts2的spring外掛程式建立的。預設情況下,外掛程式使用by name的方式裝配,可以通過增加struts2常量來修改匹配方式:設定方式為:struts.objectfactory.spring.autowire = typename,可選的裝配引數如下:

name:相當於spring配置的autowrie="byname"(預設)

type:相當於spring配置的autowrie="bytype"

auto:相當於spring 配置的autowrie="autodetect"

constructor: 相當於spring配置的autowrie="constructor"

ok,這裡說了配置部分,但是,這裡有乙個問題, 就是spring管理action,如果按照第一方式,那麼只要通過scope="property"來配置為每個請求建立乙個action例項。 那麼第二種方式,我們並沒有指定action的作用域。

(好似也沒有地方可配……),那麼,這樣的整合方式,action的建立到底是單例還是多例的呢?

答案:也是每個請求乙個例項.

Struts 2框架整合Spring

struts 2框架整合spring很簡單,下面是整合的步驟。1.複製檔案。複製struts2 spring plugin x x x.jar和spring.jar到web inf lib目錄下。其中的x對應了spring的版本號。還需要複製commons logging.jar檔案到web inf...

Spring框架整合Struts2

匯入spring的dist全部所需的jar包 struts2的spring外掛程式 struts2 spring plugin.xx.jar struts2的核心包 struts2 core.xx.jar xwork core.xx.jar commons.logging.xx.jar 根據需要選擇...

Struts2與Spring的整合

struts2與spring的整合,是mvc和ioc的整合,必須充分利用他們的特性 1 整合的原理 struts2 攔截使用者請求後,需要將資訊通過struts.xml的配置檔案的內容傳遞到相應的action中,在這個時候就需要建立action例項,整合spring框架後,action例項交給spr...