Java 全能高效 MVC & RESTful 开发框架 Portal

Wesley13
• 阅读 570

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 源码、示例及文档资源:请访问项目主页 ^_*

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知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,融会贯通。

★ 完善的技术支持:除了提供完善的开发手册和示例代码以外,还提供博客和QQ群用于解答使用Portal-Basic过程中碰到的所有问题。

    * Portal-Basic 总体架构

Java 全能高效 MVC & RESTful 开发框架 Portal

* Portal-Basic 应用程序依赖关系

Java 全能高效 MVC & RESTful 开发框架 Portal

Portal-Basic 3.1.1 更新:

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

  1. com.bruce.mvc 包中增加异步任务接口 AsyncTask 及实现类 AbstractAsyncTask、ActionTask
  2. com.bruce.mvc.ActionSupport 增加异步处理相关方法:startAsync(...)

2、支持异步 REST Action(在 portal-basic-exe-rest-3.1.1 插件中实现):

  1. com.bruce.ext.rest 包中增加 REST 异步任务实现类 RestActionTask
  2. com.bruce.ext.rest.RestActionSupport 增加异步处理支持

3、增加两个 JDBC SessionMgr:

1) com.bruce.dao.jdbc.DruidSessionMgr :使用 Druid 连接池连接数据库
2) com.bruce.dao.jdbc.JndiSessionMgr  :使用 JNDI 连接池连接数据库

 4、其它更新

  1. 测试工程 MyPortal 加入异步处理 Action 请求和异步 Rest Action 请求示例

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

 5、应用程序升级说明:

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

 Portal-Basic 3.0.1 更新:

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

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

2、增加 REST 支持:

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

 开发文档目录:

Java 全能高效 MVC & RESTful 开发框架 Portal

 相关链接:

Portal-Basic Java Web 应用开发框架 —— 概述
Portal-Basic Java Web 应用开发框架:应用篇(一) —— 配置文件
Portal-Basic Java Web 应用开发框架:应用篇(二) —— Action 使用
Portal-Basic Java Web 应用开发框架:应用篇(三) —— 国际化
Portal-Basic Java Web 应用开发框架:应用篇(四) —— 文件上传和下载
Portal-Basic Java Web 应用开发框架:应用篇(五) —— DAO 框架
Portal-Basic Java Web 应用开发框架:应用篇(六) —— 公共组件
Portal-Basic Java Web 应用开发框架:应用篇(七) —— 页面静态化
Portal-Basic Java Web 应用开发框架:应用篇(八) —— 整合 Freemarker
Portal-Basic Java Web 应用开发框架:应用篇(九) —— 多入口 Action
Portal-Basic Java Web 应用开发框架:应用篇(十) —— 新 DAO 访问接口
Portal-Basic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring
Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
Portal-Basic Java Web 应用开发框架:应用篇(十三) —— REST Convention
Portal-Basic Java Web 应用开发框架:应用篇(十四) —— 异步 Action

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Portal
PortalBasicWeb应用开发框架(简称PortalBasic)是一套功能完备的高性能Web应用开发框架,内置可扩展的MVCWeb基础架构和DAO访问接口(已内置Hibernate、MyBatis 和JDBC支持),集成Action拦截、FormBean/DaoBean/SpringBean装配、国际化
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这