Struts與Spring整合的幾種方法

2021-08-29 04:24:18 字數 1666 閱讀 3958

論壇中用struts+spring的人不少,以前的帖子也有問過struts+spring的整合方式。前面的帖子中readonly老大曾經提到過spring2.0新增加的乙個整合方式。今天簡單把這幾種整合方式小結一下。

下面著重談一下spring2.0新增的乙個整個方式,我感覺挺不錯,可以完全將struts的配置和spring的配置分離。具體步驟如下:

[quote]

<?xml version="1.0" encoding="utf-8"?>

[/quote]

這看上去就和普通的spring配置檔案沒有任何分別。

2. 編寫struts的配置檔案struts-config.xml,注意其中的controller的配置,用到了spring2.0的新特性。

[quote]

<?xml version="1.0" encoding="utf-8"?>

type="com.bearingpoint.gdc.zero.action.user.adduser"

scope="request"

>

[/quote]

3. 然後為你的struts的action注入你需要的service

[quote]

private userservice userservice;

user user = new user();

userservice.adduser(user);

}/**

* @param userservice

* the userservice to set.

*/public void setuserservice(userservice userservice)

[/quote]

看上去你好像啥都沒做,而事實上,注入工作已經由autowiringrequestprocessor自動完成。

4. 編寫web.xml進行測試。

[quote]

?xml version="1.0" ?>

org.springframework.web.context.contextloaderlistener

struts

org.apache.struts.action.actionservlet

config

/web-inf/classes/struts-config.xml

detail

2validate

true

2*.do

index.jsp

[/quote]

最後,啟動jetty進行測試,順利執行通過!

看上去如此簡單,配置起來也沒有什麼很特別的地方,只是按照常規來寫你的spring和struts的配置檔案就好了。

不過在這裡還是說一下其中的要注意兩個問題:

1. 這種autowire的注入支援兩種不同的方式,分別是byname和bytype,預設是bytype。我想這對於絕大多數開發者來說是夠了。

2. 鑑於在中所提到的opensessioninview模式的失效的問題。我仔細看了一下spring的原始碼。對於這種autowire的整合方式,不推薦在struts-config.xml檔案中配置contextloaderplugin,而是採用web.xml中的contextloaderlistener來載入spring的初始化配置。否則,你的opensessioninview模式可能會失效。

Struts與Spring的整合

struts核心是mvc,struts與spring的整合就是把struts的action交給spring去管理,從而達到簡化程式的目的 一 配置spring上下文和監聽 配置spring上下文和監聽有兩種方式 方式一 web.xml web主要配置檔案 而主要用於監聽web的上下文,可用下面 代替...

Spring與Struts如何整合

struts,spring,hibernate三者也學習得差不多了,是時候該去深入了解如何去用spring來融合其他兩個 spring與struts如何整合 以下技術文件 網路 為了在struts中載入spring context,需要在struts config.xml檔案中加入如下部分 通過st...

struts與spring整合學習筆記

一 在strust config.xml中,配置struts和單獨用struts差不多,區別在 上面的例子中的type應該是實際存在的類,但是現在卻用乙個spring框架下的 類來代替。在apllicationcontext.xml中定義bean時 bean name login class net...