JessMA(原名:Portal-Basic)是由JessMA Open Source开发的一套高效 Java Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截、Form
/ Dao / Spring Bean 装配、国际化、文件上传下载和页面静态化等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,可完美整合 Spring,支持 Action Convention,能快速开发传统风格和 RESTful 风格应用程序,文档和示例完善,非常容易学习。
JessMA 官方网站:http://www.jessma.org
JessMA 下载地址:https://code.google.com/p/portal-basic/
JessMA在设计之初就充分注重功能、性能与使用体验。JessMA主要特点:
★功能全面:内置稳定高效的MVC基础架构和DAO框架,支持Action拦截、Form Bean / Dao Bean / Spring Bean装配和声明式事务,提供国际化、文件上传下载、缓存和页面静态化等常用Web组件,能满足绝大部分Web应用的需要。
★高度扩展:JessMA通过的plug-in机制可以灵活扩展,JessMA发布包中自带的jessma-ext-rest和jessma-ext-spring均以插件的形式提供,用户可根据需要加载或卸载这些插件。应用程序开发者也可以根据实际需要编写自定义插件来扩展JessMA。
★强大的整合能力:JessMA是一个Full-Stack框架,同时也是一个开放式框架,可以以非常简单的方式整合第三方组件。本开发手册会详细阐述如何在JessMA中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和组件。
★高性能:性能要求是JessMA的硬性指标,从每个模块的设计到每行代码的实现都力求简洁高效。另外,JessMA并没有对JSP/Servet API进行过多封装,开发者仍然使用JSP/Servet API开发应用程序,没有过多的迂回,性能得到保证。
★优秀的使用体验:JessMA的设计目标之一是提供良好的开发体验,尽量减少应用程序开发者的工作,API的设计力求简单、完整、明确。同时,JessMA为应用开发提供了大量Util工具,用来处理应用程序开发过程中通常会遇到的一般性问题,进一步减少应用程序开发者的工作负担。
★平缓的学习曲线:平缓的学习曲线:学习使用JessMA只需掌握一定的Core Java与JSP/Servlet知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,融会贯通。
★完善的技术支持:除了提供完善的开发手册和示例代码以外,还提供博客和Q~Q~群用于解答使用JessMA过程中碰到的所有问题,也可以访问 JessMA 官方网站了解更多资讯。
*JessMA 总体架构
JessMA主要包括以下5个部分:
●基础应用框架
基础应用框架加载应用程序配置文件(默认:app-config.xml),监听应用程序的生命周期事件,并向上层应用发送应用程序启动和关闭通知,应用程序可以处理这些通知进行额外的初始化或清理工作。基础应用框架在org.jessma.app包中是实现。
●MVC框架
MVC框架加载MVC配置文件(默认:mvc-config.xml),通过前端控制器ActionDispatcher接收和解析所有的客户HTTP请求,然后交由相应的Action进行处理,最后生成相应的视图返回给客户端。MVC框架在org.jessma.mvc包中实现。
●DAO框架
DAO框架封装了所有的数据库访问操作,内置JDBC、Hibernate和MyBaits数据库访问组件以及Druid、Proxool、JNDI等连接池。DAO框架是可扩展的,用户可以通过扩展org.jessma.dao.AbstractFacade和org.jessma.dao.AbstractSessionMgr实现自己的数据库访问组件。DAO框架在以下包中实现:
▪ org.jessma.dao
▪ org.jessma.dao.hbn
▪ org.jessma.dao.jdbc
▪ org.jessma.dao.mybatis
▪ org.jessma.ext.dao
●公共组件
公共组件提供多种通用功能帮助类(如:字符串处理、类型转换、分页算法、压缩/解压、加解密、邮件发送等),这些类与框架无关,可在任何应用程序中使用。公共组件在以下包中实现:
▪ org.jessma.util
▪ org.jessma.util.archive
▪ org.jessma.util.cache
▪ org.jessma.util.http
▪ org.jessma.util.mail
▪ org.jessma.dao(DAO框架也可由看作为一个相对较大的公共组件)
●扩展插件
扩展差插件是基于JessMA核心框架基础上的功能延伸,不是JessMA的必要组件。可由应用程序开发人员根据需要自行定制。JessMA发行包中也自带了一些扩展插件(如:jessma-ext-spring和jessma-ext-rest)。
*JessMA 应用程序依赖关系
基础应用框架、MVC框架和DAO框架都依赖于公共组件,其中基础应用框架同时依赖于DAO框架,因此,MVC框架和DAO框架能脱离JessMA单独使用(当然,要附带上公共组件)。例如:可以把MVC框架和DAO框架用于JessMA之外的其它Web项目;也可以把DAO框架用于非Web项目(如:Swing / SWT桌面应用)。
JessMA 3.2.1 更新:
1、Portal-Basic 框架正式更名为 JessMA
1) JessMA 的版本号沿用 Portal-Basic 的版本号
2) 包名称 com.bruce.* 统一改为 org.jessma.*
2、mvc-confing.xml 中增加 <base-path> 配置项,支持自定义 ${__base} 变量
1) base-path.type 有三种类型:'auto','manual','none',其中 'auto' 为默认类型
2) 'auto':根据当前请求的路径信息自动设置 ${__base}(${__base} 保存在 Request Attribute 中)
${__base} = {scheme}://{server_name}:{server_port}/{app_context}
3) 'manual':在 MVC 配置文件中手工设置 ${__base}(${__base} 保存在 Application Attribute 中)
4) 'none':不设置 ${__base}
3、mvc-confing.xml 中增加 <result-path-aliases> 配置项,支持用别名置换 Action Result 的路径
例如:
<result-path-aliases>
<alias name="index" path="/jsp/index.jsp"/>
<alias name="jsp_base" path="/jsp/test"/>
</result-path-aliases>
以下的几个配置是等效的:
1) 不使用别名
<result>/jsp/index.jsp</result> 或注解 @Result(path="/jsp/index.jsp")
<result>/jsp/test/my.jsp</result> 或注解 @Result(path="/jsp/test/my.jsp")
2) 使用别名
<result>${index}</result> 或注解 @Result(path="${index}")
<result>${jsp_base}/my.jsp</result> 或注解 @Result(path="${jsp_base}/my.jsp")
4、支持在不重启服务器的情况下,动态更新应用程序配置
1) 更新 MVC 配置。org.jessma.mvc.ActionDispatcher 增加方法:
A) reload(delay) 更新 MVC 配置
B) pause() 暂停 MVC 组件
C) resume() 恢复 MVC 组件
D) 以上三个方法配合使用:pause() -> reload(delay) -> resume()
2) 更新 REST 配置。org.jessma.ext.rest.RestDispatcher 增加方法:
A) reload(delay) 更新 REST 配置
B) pause() 暂停 REST 组件
C) resume() 恢复 REST 组件
D) 以上三个方法配合使用:pause() -> reload(delay) -> resume()
3) 更新应用程序配置文件(app-config.xml)的 <user> 节点。org.jessma.app.AppConfig 增加方法:
A) reloadUserConfig(delay) 调用由 <system>/<user-config-parser> 节点定义的 UserConfigParser的 parse(user) 方法重新加载 <user> 节点的配置信息
B) 执行更新前通常需要暂停 MVC 组件 或 REST 组件(调用它们的 pause() 方法)
5、修改 org.jessma.util.Logger,使 Logger 类更通用
1) 默认日志记录器:应用程序默认日志记录器的名称为 'JessMA',可以调用 Logger.getDefaultLogger() 获取默认日志记录器
2) 其他日志记录器:应用程序可以在任何地方调用 new Logger("<logger_name>") 获取在 log4j.properties 中配置的其他日志记录器
6、增加一个 JDBC SessionMgr
1) org.jessma.dao.jdbc.JdbcSessionMgr :没有使用连接池的 JDBC SessionMgr
7、其它更新
1) 原测试工程 MyPortal 改为 MyJessMA
2) 原依赖库 portal-basic-lib 改为 jessma-lib
3) 依赖库 “jessma-lib” 和 “spring-lib” 中的所有 jar 包更新到最新版本
4) 更好地支持在 GAE、BAE 和 OpenShift 等云平台中部署 JessMA 应用程序
5) 更新开发手册《JessMA 高效 Java MVC & REST 开发框架 (v3.2)》
6) 官方网站 www.jessma.org 将陆续提供各项技术支持
8、应用程序升级说明
JessMA 3.2.1 在功能方面完全兼容 Portal-Basic 3.1.1,原有应用程序升级到 JessMA 3.2.1 需做以下工作:
1) 应用程序中所有用到 com.bruce.* 的地方都改为 org.jessma.*
2) 修改 XML 配置文件的 XSD Schema 引用(参考 MyJessMA 测试工程)
3) 如果应用程序用到 org.jessma.util.Logger,则获取日志记录器对象的代码要作一些调整(参考 MyJessMA 测试工程)
4) 如果应用程序用到 base.jsp,则用 JessMA 3.2.1 的 jessma-base.jsp 替换原来的 base.jsp
JessMA 更新历史:ChangLog.txt
开发文档目录:
分享到:
相关推荐
kangle web服务器( 简称:kangle ) 是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件。 除此:kangle也是一款专为做虚拟主机研发的web服务器。实现虚拟主机独立进程、独立身份...
AMD系统调节工具OverDrive 3.2.1正式版 AMD系统调节工具OverDrive 3.2.1正式版
uploadify V3.2.1上传插件,并且内含 404 Not Found问题的解决方法哦!
FusionCharts是InfoSoft Global公司的一...此版本为FusionCharts之PowerCharts v3.2.1,里面的Flash文件已经去除掉LOGO,仅限个人用户学习使用。商业开发请购买正版。 FusionCharts官网:http://www.fusioncharts.com/
欧洲电信标准化协会标准:无线玩具或短距离遥控产品ETSI EN 300 220-2 V3.2.1(2018-06)
完美验证码识别系统V3.2.1.
完美验证码识别系统v3.2.1,完美验证码识别系统v3.2.1
请先下载DXCore,然后解压到CodeRush的子目录下再安装。此为正式版本,无须破解无须输入序列号
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
电视盒 apk文件 当贝影视V3.2.1 TV版(电视直播视频)电视盒 apk文件 当贝影视V3.2.1 TV版(电视直播视频)电视盒 apk文件 当贝影视V3.2.1 TV版(电视直播视频)电视盒 apk文件 当贝影视V3.2.1 TV版(电视直播视频)...
asp源码—bAduVEMS 八度asp志愿者活动管理系统 v3.2.1.zip asp源码—bAduVEMS 八度asp志愿者活动管理系统 v3.2.1.zip asp源码—bAduVEMS 八度asp志愿者活动管理系统 v3.2.1.zip asp源码—bAduVEMS 八度asp志愿者活动...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书...
FusionCharts v3.2.1 Evaluation控件
正则表达式辅助生成工具RegexBuddy V3.2.1破解版
androidstudio 3.2.1 正式版 64位 下载地址,官网下载SHA256验证
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...
CRMEB 是基于Thinkphp6基础开发的以会员为中心的电商系统,开源版微信公众号商城和小程序商城数据同步,带积分、优惠券、秒杀、砍价、分销等功能,更是一套方便二次开发的商城框架(后台封装了独有快速创建表单功能...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript...