論壇中用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...