Portal-Basic Java Web 应用开发框架:应用篇(十四) —— 异步 Action

Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架,内置稳定高效的MVC基础架构和DAO框架(已内置Hibernate、MyBatis和JDBC支持),集成 Action拦截、Form Bean / Dao Bean / Spring Bean装配、国际化、文件上传下载和缓存等基础Web应用组件,提供高度灵活的纯 Jsp/Servlet API 编程模型,完美整合 Spring,支持Action Convention“零配置”,能快速开发传统风格和RESTful风格的Web应用程序,文档和代码清晰完善,非常容易学习。

  Portal-Basic 源码、示例及文档资源:请访问项目主页 ^_*

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

1) 功能全面:内置稳定高效的MVC基础架构和DAO框架,支持Action拦截、Form Bean / Dao Bean / Spring Bean装配和声明式事务,提供国际化、文件上传下载、缓存和页面静态化等常用Web组件,能满足绝大部分Web应用的需要。

2) 高度扩展:Portal-Basic通过的plug-in机制可以灵活扩展,Portal-Basic发布包中自带的portal-basic-ext-rest和portal-basic-ext-spring均以插件的形式提供,用户可根据需要加载或卸载这些插件。应用程序开发者也可以根据实际需要编写自定义插件来扩展Portal-Basic。

3) 强大的整合能力:Portal-Basic是一个Full-Stack框架,同时也是一个开放式框架,可以以非常简单的方式整合第三方组件。本开发手册会详细阐述如何在Portal-Basic中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和组件。

4) 高性能:性能要求是Portal-Basic的硬性指标,从每个模块的设计到每行代码的实现都力求简洁高效。另外,Portal-Basic并没有对JSP/Servet API进行过多封装,开发者仍然使用JSP/Servet API开发应用程序,没有过多的迂回,性能得到保证。

5) 优秀的使用体验:Portal-Basic的设计目标之一是提供良好的开发体验,尽量减少应用程序开发者的工作,API的设计力求简单、完整、明确。同时,Portal-Basic为应用开发提供了大量Util工具,用来处理应用程序开发过程中通常会遇到的一般性问题,进一步减少应用程序开发者的工作负担。

6) 平缓的学习曲线:平缓的学习曲线:学习使用Portal-Basic只需掌握一定的Core Java与JSP/Servlet知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,融会贯通。

7) 完善的技术支持:除了提供完善的开发手册和示例代码以外,还提供博客和QQ群用于解答使用Portal-Basic过程中碰到的所有问题。接下来,将计划建设一个Portal-Basic技术论坛。


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 版本)


 

CodeProject

转载于:https://www.cnblogs.com/ldcsaa/archive/2013/05/02/3022105.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类似No module named 'bs4'等错误的解决方法

from: https://www.cnblogs.com/xisheng/p/7856334.html 最近开始接触爬虫,写了如下源代码: from bs4 import BeautifulSoup import requests urlhttps://www.tripadvisor.cn/Attractions-g60763-Activities-New_York_City_New_York.html wb_datereque…

js中的Object.create(null) 和 {} 的区别

console.log(Object.create(null))console.log({})结果图 根据结果我们不难发现,两者最大区别在于Object.create(null)创建的对象没有继承Object 所有Object.create(null)创建的对象也没有Object提供的方法,是一个非常纯净的对象 ps: Object.create(obj…

java web 中的转发和重定向路径问题

为什么80%的码农都做不了架构师?>>> 假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发和重定向到 http://localhost:8080/ctx/x/y 资源,分别应该怎么写? 转发&…

断言assert使用方法

测试代码 console.log(开始)console.assert(true, true)console.assert(false,false)console.log(结束)结果 可以发现: assert方法中,第一个参数是判断条件,当为true时,不执行 。当为false时, 输出后面提示内容 且我们…

AngularJs学习笔记(四)

1、AngularJs中的Module可以包含哪些组件?(1)value:保存可以在不同的controller之间共享的对象、数据(2)constant:保存可以在不同的controller之间共享的常量(3)service&…

[你必须知道的异步编程]——异步编程模型(APM)

本专题概要:引言你知道APM吗?你想知道如何使用异步编程模型编写代码吗?使用委托也可以实现异步编程,你知道否?小结一、引言在前面的C#基础知识系列中介绍了从C#1.0——C#4.0中一些主要特性,然而.NET 4.5更新…

iOS 10 的一个重要更新-自定义的通知界面

续上篇,在简单闹钟的例子上,在通知界面上显示图片动画,并用通知关联的按钮更新通知界面。介绍 iOS 10 通知 API 的扩展:自定义通知显示界面。 新框架可以统一处理本地通知和远程推送,同时增加了一些新 API 来控制等待中…

[USACO 1.3.3]Calf Flac

o(︶︿︶)o 烦躁,看了半天没看懂这个O(n)的回文串算法是什么东西,直接套上模板就交了。然后AC了 题目: Description 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去这些牛…

Class.forName()用法详解

Class.forName()用法详解 标签: classjvmjdbc数据库documentationjava2012-03-29 09:39 40414人阅读 评论(8) 收藏 举报分类:Java考古学(74) 主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要…

应对不良网络文化的技术之一——网络信息抽取技术

1 引言 2008年1月17日,中国互联网络信息中心(CNNIC)发布了《第21次中国互联网络发展状况统计报告》[1],报告显示: (1) 截至2007年12月,网民数已增至2.1亿人。中国网民数增长迅速,比2007年6月增加4800万人&…

HBuilder完成webApp入门(2)

一、HBuilder的下载地址:http://www.dcloud.io/,点击那个“DownLoad”就可以 了 二、假设一切顺利,启动HBuilder后,大家会看到如下的界面 点击新建移动APP: 接下来就会弹出一个选择模板的对话框: 默认的模板…

高可用集群 heartbeatv1实例

——————— 高可用集群的简单配置 ————————地址规划 主节点:HA1 172.16.21.13 hostname node2.magedu.com备节点: HA2 172.16.21.14 hostname node1.magedu.comVIP 172.16.21.9前提工作1,配置主机名 hostname保证uname …

你知道“拉黑”、“关注”、“点赞”、“转发”、“分享到朋友圈”等英语咋说吗?

From: https://www.sohu.com/a/220161051_559507 “分享到朋友圈”等英语咋说吗? Mini apps 小程序 小程序”(mini apps)是一个不需要下载安装就可使用的应用(apps that can be accessed without downloading)&#x…

配套自测连载(三)

接上期(答案已给出)本期是专门针对《深入理解计算机网络》图书第4章而编写的10道计算机网络体系架构中的物理层技术自测题,可以检验你对本章的学习效果。把你的答案直接写在评论中即可,笔者将在每期发表10天后给出正确答案。本书是国内最通俗、最系统的计…

[json] JSON for Modern C++

有幸能接触到这个,这是我遇到的使用最方便的json了,效率没研究过! 简单了使用了下,感觉非常好用,记录下: 要使用这个json,只需要使用json.hpp就行,放入自己的工程里,但…

libinject的编译

libinject是一个Android进程注入实例,其下载地址为:http://download.csdn.net/download/ljhzbljhzb/3680780 libinject的编译需要NDK开发环境,在NDK安装成功之后,可以先将其自带的实例中的HelloJni导入到eclipse中,编译…

Linux Supervisor 守护进程基本配置

supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。 组成部分supervisord:服务守护进程supervisorctl:命令行客户端Web Server:提供与supervisorctl功能相当的WEB操…

三阶魔方还原公式

From: https://www.cnblogs.com/zqifa/p/mofang-1.html 1. 第二层棱块归位: 2. 顶层十字 3. 顶层棱中间块归位 这一步的目的是使顶层的4个棱中间块全部归位。 转动顶层(U),若可以使一个棱中间块归位(如下图左,这里以[红-黄]块为例)&#x…

选项板概述

2019独角兽企业重金招聘Python工程师标准>>> 1、选项板概述 选项面板是一个包括一个或多个选项卡(Tab),同一时刻只显示一个选项卡的这种用户界面。比如下图的IE选项设置界面中,就是一个选项板的应用,选项板上有“常规”、“安全”…

三阶魔方的入门教程

From: http://www.rubik.com.cn/beginner.htm 下面是三阶魔方图文教程,想直接看更好懂的三阶魔方视频教程请点这里 魔方别看只有26个小方块,变化可真是不少,魔方总的变化数为 或者约等于4.31019。如果你一秒可以转3下魔方,不计重…