Portal-Basic Web应用开发框架(简称 Portal-Basic或PB)是一套功能完备的超轻量级Web应用开发框架,内置MVC Web基础架构,支持可扩展的数据访问接口(已内置Hibernate、MyBatis和JDBC支持),集成 Action拦截、Form Bean / DAO Bean装配、国际化、文件上传下载、页面静态化和缓存等基础Web应用组件,提供纯Jsp/Servlet API的使用接口,非常容易学习和使用。
Portal-Basic 源码、示例及文档资源:请访问 google code 项目 ^_*
Portal-Basic 主要特点:
1) 功能完备:内置MVC基础架构、支持Action拦截、Form Bean / DAO Bean装配、可扩展的数据库访问接口、国际化、文件上传下载、OSCache、Memcahced以及其他常用应用组件,能满足绝大部分Web应用的需要。
2) 轻量级:Portal-Basic并没有对Jsp/Servet API进行过多的封装,用户仍然使用Jsp/Servet API进行开发,没有过多的迂回,因此性能方面得到保证。另外,Portal-Basic为Jsp/Servet API提供了多种Util类和方法,使用起来十分简便。
3) 容易掌握:由于没有对Jsp/Servet API进行过多的封装,因此用户只需具备一定的Java/Jsp知识就能很好的掌握框架的使用。另外,Portal-Basic提供类似Struts的应用配置方式,用户能轻易过度到Struts,同时也能为用户更深入理解MVC框架原理提供非常有用的参考。
Portal-Basic 2.6.1 新特性:
1、MVC 子框架升级:
1) 支持多入口 Action(请求格式:http://.../.../<action_name>!<entry_name>.<action_suffix>)
2) Action 拦截器的过滤规则可以细化到 Action 入口方法级别
3) @FormBean 注解可声明在 Action 的入口方法中(覆盖 Action 类定义中的 @FormBean 声明)
4) @FormBean 注解支持成员变量注入(即:属性没有定义公共 setter 方法的成员变量也能注入)
5) 增加 @DaoBean 和 @DaoBeans, 支持 DAO 对象注入(不用显式调用 FacadeProxy.create(...) 方法创建 DAO 代理对象)
6) 添加内置 Request Attribute -> '__base'(HTTP 请求的 BASE URL)
7) 添加内置 Application Attribute -> '__context'(Servlet Context 的 ROOT PATH)
8) 修改 base.jsp,用 {__base} 取代 {basePath}
9) MVC 配置文件支持多重“include”(即:从配置文件也可以“include”其它配置文件),并能自动过滤重复文件
10) 优化 MVC 框架的缓存机制,提升框架性能
11) 示例工程 MyPortal 增加 Freemarker 整合示例
2、DAO 子框架升级:
1) 增加 FacadeProxy.create(...) 系列 DAO 访问方法
2) 为 DAO 类添加 @Transaction 注解,与 FacadeProxy.create(...) 系列方法配合使用
3) FacadeProxy.create(...) 系列方法支持在 Action 中自动注入 DAO 对象(利用 @DaoBean 或 @DaoBeans 注解)
4) 优化 DAO 框架的缓存机制,提升框架性能










原文出处:怪兽的博客 怪兽的微博 怪兽乐园Q群