阅读更多

11顶
2踩

企业架构
Portal-Basic 是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截、Form / Dao / Spring Bean 装配、国际化、文件上传下载和页面静态化等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,可完美整合 Spring,支持 Action Convention,能快速开发传统风格和 RESTful 风格应用程序,文档和示例完善,非常容易学习。

Portal-Basic 源码、示例及文档资源:https://code.google.com/p/portal-basic/

Portal-Basic在设计之初就充分注重功能、性能与使用体验。Portal-Basic主要特点:

  • 功能全面:内置稳定高效的MVC基础架构和DAO框架,支持Action拦截、Form Bean / Dao Bean / Spring Bean装配和声明式事务,提供国际化、文件上传下载、缓存和页面静态化等常用Web组件,能满足绝大部分Web应用的需要。
  • 高度扩展:Portal-Basic通过的plug-in机制可以灵活扩展,Portal-Basic发布包中自带的portal-basic-ext-rest和portal-basic-ext-spring均以插件的形式提供,用户可根据需要加载或卸载这些插件。应用程序开发者也可以根据实际需要编写自定义插件来扩展Portal-Basic。
  • 强大的整合能力:Portal-Basic是一个Full-Stack框架,同时也是一个开放式框架,可以以非常简单的方式整合第三方组件。本开发手册会详细阐述如何在Portal-Basic中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和组件。
  • 高性能:性能要求是Portal-Basic的硬性指标,从每个模块的设计到每行代码的实现都力求简洁高效。另外,Portal-Basic并没有对JSP/Servet API进行过多封装,开发者仍然使用JSP/Servet API开发应用程序,没有过多的迂回,性能得到保证。
  • 优秀的使用体验:Portal-Basic的设计目标之一是提供良好的开发体验,尽量减少应用程序开发者的工作,API的设计力求简单、完整、明确。同时,Portal-Basic为应用开发提供了大量Util工具,用来处理应用程序开发过程中通常会遇到的一般性问题,进一步减少应用程序开发者的工作负担。
  • 平缓的学习曲线:平缓的学习曲线:学习使用Portal-Basic只需掌握一定的Core Java与JSP/Servlet知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,融会贯通。
  • 完善的技术支持:除了提供完善的开发手册和示例代码以外,还提供博客和Q~Q~群用于解答使用Portal-Basic过程中碰到的所有问题。
Portal-Basic 总体架构



Portal-Basic 应用程序依赖关系



Portal-Basic 3.1.1 更新:

1、支持异步 Action(“异步处理” 是 Servlet 3.0 的新特性之一):

  • com.bruce.mvc 包中增加异步任务接口 AsyncTask 及实现类 AbstractAsyncTask、ActionTask
  • com.bruce.mvc.ActionSupport 增加异步处理相关方法:startAsync(...)
2、支持异步 REST Action(在 portal-basic-exe-rest-3.1.1 插件中实现):

  • com.bruce.ext.rest 包中增加 REST 异步任务实现类 RestActionTask
  • com.bruce.ext.rest.RestActionSupport 增加异步处理支持
3、增加两个 JDBC SessionMgr:

  • com.bruce.dao.jdbc.DruidSessionMgr :使用 Druid 连接池连接数据库
  • com.bruce.dao.jdbc.JndiSessionMgr  :使用 JNDI 连接池连接数据库
4、其它更新:

  • 测试工程 MyPortal 加入异步处理 Action 请求和异步 Rest Action 请求示例
  • 测试工程 MyPortal 的所有 Hibernate 和 JDBC 示例都使用 Druid 取代原来的 Proxool 连接池
  • 开发手册《Portal-Basic Java Web 应用开发框架(v3.1.20130420)》加入 “异步 Action” 章节
  • Portal-Basic 的依赖库 “portal-basic-lib” 和 “spring-lib” 中的所有 jar 包更新到最新版本
5、应用程序升级说明:

  • Portal-Basic 3.1.1 的 “异步处理” 功能只适用于支持 Servlet 3.0 的应用环境(如:JaveEE 6 / Tomcat 7)
  • 如果应用环境不支持 Servlet 3.0(如:JaveEE 5 / Tomcat 6),则只能使用原有功能
  • Portal-Basic 3.1.1 不再提供 JDK 1.5 的兼容版本
  • Portal-Basic 3.1.1 完全兼容 Portal-Basic 3.0.1 (非 JDK 1.5 版本)
Portal-Basic 3.0.1 更新:

1、增加 Action Convention,支持“Action 零配置”:

  • 根据 Action 请求的地址信息自动加载 Action,并调用相应的入口方法处理请求
  • 根据 Action 请求的地址信息和 Action Result 自动组合出输出页面的地址并转发
  • 通过 @Result/@Results 和 @ExceptionMapping/@ExceptionMappings 注解自定义 Result 和 Exception 处理策略
2、增加 REST 支持:

  • 增加 REST 插件包 portal-basic-ext-rest-3.0.1.jar 用于支持 REST
  • portal-basic-ext 通过 com.bruce.ext.rest.RestDispatcher 过滤器把 REST 请求转换为 Action 请求
  • portal-basic-ext 提供 com.bruce.ext.rest.RestActionSupport 作为处理 REST 请求的 Action 基类
  • Action 的 REST 请求处理方法通过声明 @Get/@Post/@Put/@Delete 注解来匹配 REST 地址格式,并注入参数
  • 内置 Rails-style REST 标准方法
  • 同时支持 HTML/XML/JSON 三种视图格式,应用程序也可以扩展自己的视图格式
  • portal-basic-ext 与 Action Convention 结合使用能实现“零配置”处理 REST 请求
开发文档目录:



文档下载:https://code.google.com/p/portal-basic/downloads/list
11
2
评论 共 28 条 请登录后发表评论
8 楼 guaishou 2013-04-27 11:39
風一樣的男子 写道
没看到快速入门例子,请问怎么高效?

开发手册第一章,1.5节(Hello World示例)
7 楼 風一樣的男子 2013-04-27 11:36
没看到快速入门例子,请问怎么高效?
6 楼 guaishou 2013-04-27 10:43
天一 写道
都什么年代了,还整一堆配置文件。人家凭什么用你这个而不直接用struts

1、Action 配置文件不是必须的,请细看12、13篇
2、portal-basic 的特点一开头已写得好清楚,不喜欢当然就不用
3、struts不能包打天下,至少我见过的所有大访问量Web系统没有一个用struts
4、虽然我知道以上所说全是废话(你绝对不会用),但我之所以要说是希望不要别人被误导
5、完毕!
5 楼 天一 2013-04-27 09:24
都什么年代了,还整一堆配置文件。人家凭什么用你这个而不直接用struts
4 楼 guaishou 2013-04-26 22:44
kanme818 写道
  和portal完全没关系。。。

你说的portal是什么意思呢~ ^_^
3 楼 kanme818 2013-04-26 22:13
  和portal完全没关系。。。
2 楼 guaishou 2013-04-26 21:32
kfhj5566 写道
标题为什么为:Portal,难道提供portal开发功能??

当初的设想是让有基础Java/jsp基础的人都能 通过本框架开发Web网站,所以起了如此奇怪的名字。
1 楼 kfhj5566 2013-04-26 17:19
标题为什么为:Portal,难道提供portal开发功能??

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics