频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

构建支持Ajax的轻量级J2EE框架

作者: meconsea 出处:中国IT实验室  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-11-22 13:07
关 键 词:Java  Ajax  J2EE  框架
阅读提示:本文是在Spring+Struts构建的轻量级框架基础上,通过让Buffalo用Spring放在ServletContext里面的WebApplicationContext(ContextLoaderPlugIn实现把WebApplicationContext的实例放在了ServletContext中来实现了一个BuffaloPlugIn。

话说Buffalo是姓中的写的,支持下国产! 来先顶一个。

Buffalo处理Ajax有多牛,嘿嘿!我还真没有正儿八经的整过。惭愧啊,争取在最近好好研究下吧!

Buffalo支持和Spring整合。嘿嘿!这也是一个亮点。亮的有些不自在。为啥?

假如你用Spring+Struts+Hibernate来构建的轻量级J2EE框架,Spring和Struts整合有好几种方式,有一种方式不要论论了。


value="/WEB-INF/applicationContext.xml,/WEB-INF/business-context.xml" />

上面的代码还熟悉吧!问题就在这了,Buffalo支持Spring的是


contextConfigLocation

/WEB-INF/applicationContext.xml



context
org.springframework.web.context.ContextLoaderServlet


1

上面的部分代码是Buffalo支持Spring必须的。

如果Spring和Struts整合用PlugIn方式,也就是Spring来管理Action(管理Action好坏先不说),Buffalo和Spring整合再在Web.xml配置SPring的东东,总感觉怪怪的。

Buffalo获取WebApplicationContext是通过WebApplicationContextUtils.getWebApplicationContext(context);来获取的。

感觉浪费......

所以想让Buffalo用Spring放在ServletContext里面的WebApplicationContext(ContextLoaderPlugIn实现把WebApplicationContext的实例放在了ServletContext中)。

所以就在Buffalo中实现了一个BuffaloPlugIn。代码如下:(写的不规范,凑合看吧!)

/**
*
* @Descripted Buffalo+Spring+Struts+Hibernate/B>
*            


* @author meconsea
* @Company 
* @IM:   MSN: meconsea@hotmail.com
*        QQ:  75147664
*        E-mail: meconsea@163.com
* @date 2006-11-16
* @Version 1.0Beta
*/
public class BuffaloPlugIn implements PlugIn {       
public static final Logger log = Logger.getLogger(BuffaloPlugIn.class);       
public static final String SERVLET_CONTEXT_PREFIX =

ContextLoaderPlugIn.class.getName() + ".CONTEXT.";
public static final String BUFFALO_CONTEXT_PREFIX =

BuffaloPlugIn.class.getName()+".CONTEXT.";

private ModuleConfig moduleConfig;
private ActionServlet actionServlet;
public void destroy() {
// TODO Auto-generated method stub
}       
protected final String getModuleConfigPrefix(){
return this.moduleConfig.getPrefix();
}
protected final ActionServlet getActionServlet(){
return this.actionServlet;
}       
public String getServletContextAttributeNameForBuffalo(){
return BUFFALO_CONTEXT_PREFIX;
}
public String getServletContextAttributeNameForSCP(){
return SERVLET_CONTEXT_PREFIX+getModuleConfigPrefix();
}
public void init(ActionServlet as, ModuleConfig mc)
throws ServletException {
// TODO Auto-generated method stub
log.info("BuffaloPlugIn init begin ......");
this.actionServlet = as;
this.moduleConfig = mc;
as.getServletContext().setAttribute

(getServletContextAttributeNameForBuffalo(),

getServletContextAttributeNameForSCP());
log.info("init  end ");
}
}

把Buffalo中的SpringFactory和SpringUtil的获得WebApplicationContext的方式修改如下:

在SpringUtil中增加方法:

/**
* 获取WebApplicationContext
* @param context
* @return
*/
public static WebApplicationContext getWebApplicationContext(ServletContext context){
WebApplicationContext wac = null;
log.info("获取Wac begin......");

if(context == null){
log.info("context is null  reutrn null");
return null;
}
String wacAttrName = (String)context.getAttribute(BuffaloPlugIn.BUFFALO_CONTEXT_PREFIX);
log.info("wacAttrName == "+wacAttrName);

if(wacAttrName != null){
wac = (WebApplicationContext)context.getAttribute(wacAttrName);
}

if(wac == null){
log.info("wac is null ,

obtain WebApplicationContext by WebApplicationContextUtils again");
wac = WebApplicationContextUtils.getWebApplicationContext(context);
}
return wac;
}

....//

WebApplicationContext appCtx = getWebApplicationContext(context);

//WebApplicationContextUtils.getWebApplicationContext(context);

好了,修改完毕了。

在Struts-config.xml中增加

就OK了。Web.xml中只配置


bfapp
net.buffalo.web.servlet.ApplicationServlet

就完全支持SPring了。

当然是建立在Spring+Struts构建了轻量级框架的基础上的。

哈哈!不知道我自己能不能看懂。就此搁笔!闪!!!!!

给自己留的纪念。

注:Spring2.0  Struts1.3  Hibernate3.0

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)


发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看52371次)
·UML类图详解 (查看46839次)
·Java编程开发手册 (查看25118次)
·UML统一建模语言 (查看24099次)
·C#技术开发指南 (查看22406次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (251个好)
·PB开发教程 (209个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有