整合SSH,非常好用的基础结构层《Platform》。

本文深入探讨了Platform架构的三大组成部分:平台基础、数据访问与Web层,详细阐述了如何通过Spring管理Bean进行初始化,并强调了GenericDao实现与分页处理器PaginationProcessor的作用。此外,介绍了MVCFacade在处理各种参数获取方面的便利性,以及抛弃传统Struts Form,采用独立BaseAction实现的方法,旨在提供更简洁高效的开发体验。

Platform大体分为3个部分:

  1. 平台基础
  2. 数据访问
  3. web

一、平台基础结构


 
不难看出Platform和Application都是由Spring管理的Bean,但他们存在与不同的ApplicationContext中。

Platform与Application由PlatformContextLoader加载平台基础的spring配置文件进行初始化,之后按照Application的层级结构逐一初始化应用的SpringContext并设置父子关系。在所有应用初始化完毕之后PlatformContextLoaderServlet初始化web层控制器的具体实现,所有步骤执行完毕后PlatformContextLoaderServlet接受访问,时序图贴上看起来会更加直白。



 

在这里PlatformContextLoaderServlet有点奇怪,他即初始化应用又扮演ActionServlet的角色接受访问,有空再改。

 

二、数据访问结构


 
最根本就是GenericDao的实现,考虑实现分页的方式繁多,抽出了一个PaginationProcessor分离分页实现逻辑。

 

三、web层结构



MVCFacade方便于获得各种类型参数。

丢弃了Struts的Form,且每个URL对应独立的BaseAction实现,实在厌恶过于臃肿的Action。

 

四、一个简单的例子

    1.Manager(简化一下,这里就不写DAO了)

public class ArticleManagerImpl extends GenericDaoDefault<Article> implements ArticleManager {

}

    2.Action

public class ArticleSaveAction extends BaseAction {
	
	private static ArticleManager articleMgr = (ArticleManager) Platform.getInstance().getBean("test", ArticleManager.BEAN_ID);

	/* (non-Javadoc)
	 * @see com.funstool.platform.struts.BaseAction#execute(com.funstool.platform.common.web.MVCFacade)
	 */
	@Override
	public String execute(MVCFacade mvc) throws MessageException {
		try {
			String content = mvc.getParameter("content");
			Article article = new Article();
			article.setContent(content);
			articleMgr.save(article);
			return MVCFacade.FORWARD_NAME_SUCCESS;
		} catch (Exception ex) {
			logger.error("保存文章信息错误。", ex);
			return MVCFacade.FORWARD_NAME_FAILURE;
		}
	}

}

  源代码请见:platform.zip

  例子完整配置及代码请见:example.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值