迅猛 Java Web 应用开发框架 JessMA v3.2.2 正式公布

 **图片 1**

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
在线示例:http://demo.jessma.org

  JessMA 在线 API
文档:http://www.jessma.org/doc/

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中整合Free马克er、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 总体架构

图片 2

   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 应用程序看重关系

图片 3

  基础运用框架、MVC框架和DAO框架都凭借于国有组件,其中基础运用框架同时借助于DAO框架,由此,MVC框架和DAO框架能脱离JessMA单独行使(当然,要附带上共用组件)。例如:可以把MVC框架和DAO框架用于JessMA之外的别样Web项目;也得以把DAO框架用于非Web项目(如:Swing
/ SWT桌面应用)。


JessMA 3.2.2
更新:

(注:这次更新的严重性内容是提升DAO 组件)

1、org.jessma.dao.hbn.HibernateSessionMgr 援救自动扫描实体对象

 1) 实体对象用 @Entity 申明取代 *.hbm.xml 映射文件(同时也不要在
hibernate.cfg.xml 中配备 ‘mapping’)
 2) app-config.xml 中安顿 HibernateSessionMgr
时,用第三个可选参数以正则表达式的格式指定实体对象所在包

  (例如:实体对象位于
‘com.bruce.<任意子包>.model’ 中)

  <manager name=”mgr-1″
class=”org.jessma.dao.hbn.HibernateSessionMgr”>

    <initialize-args>

      <arg></arg>
      <arg>com\.bruce\..+\.model</arg>

     </initialize-args>
  </manager>

2、org.jessma.dao.mybatis.MyBatisSessionMgr 支持电动扫描 SQL Mapper
接口

 1) 不必在 mybatis.cfg.xml 中配置 ‘mapper’
 2) app-config.xml 中配置 MyBatisSessionMgr
时,用第三个可选参数以正则表达式的格式指定 SQL Mapper 接口所在包

  (例如:SQL Mapper 接口位于
‘com.bruce.<任意子包>.mapper’ 中)

  •   <manager name=”mgr-2″
    class=”org.jessma.dao.mybatis.MyBatisSessionMgr”>
        <initialize-args>
          <arg></arg>
          <arg></arg>*
  •       <arg>com\.bruce\..+\.mapper</arg>
        </initialize-args>*
  •   </manager>*

3、所有 JDBC Session Manager 均撤消 ‘isXml’
配置参数,改为基于安插文件的扩张名自动识别配置文件类型

 1) 受影响的 Session
Manager:DruidSessionMgr、JdbcSessionMgr、JndiSessionMgr、ProxoolSessionMgr

4、org.jessma.dao.FacadeProxy 扩充方法 executeCustomTransaction(…)
接济实施自定义事务

 1) JessMA 的政工是 DAO 层事务,也就是说当外部调用某个 DAO
方法时,该方法作为一个业务单元执行。 但在局地例外景况下或者需求在 DAO
外部执行 瑟维斯(Service) 层事务(例如:事务必要调用多少个 DAO 对象的七个措施),
此时亟需创制一个自定义事务(CustomTransaction),并调用 FacadeProxy 的
executeCustomTransaction(…) 来施行该自定义事务。
 2) 扩张自定义事务相关接口:
  A) CustomTransaction  : 自定义事务基接口
  B) JdbcTransaction     : JDBC 自定义事务接口
  C) MyBatisTransaction  : MyBatis自定义事务接口
  D) HibernateTransaction : Hibernate 自定义事务接口

  (示例)

  public static void
serviceMethod()

  {
    // 获取 SessionMgr
    HibernateSessionMgr mgr =
(HibernateSessionMgr)AppConfig.getSessionManager(“mgr-1”);

    // 执行自定义事务
    FacadeProxy.executeCustomTransaction(mgr, new HibernateTransaction(){
    // 已毕自定义事务方法
    @Override
    public void execute(HibernateSessionMgr mgr) throws
DAOException

    {
      // 成立 dao1 (不可能选用 FacadeProxy 成立 DAO
对象)

      MyDaoA dao1 = new
MyDaoA(mgr);

      // 创建 dao2 (无法利用 FacadeProxy 成立 DAO
对象)

      MyDaoB dao2 = new
MyDaoB(mgr);

      // 执行 DAO 方法
      dao1.methodXxx();
      dao2.methodYyy();
      dao1.methodZzz();
      dao2.methodNnn();
    }});
  }

5、扩张 mvc-confing.xml 中 <result-path-aliases>
别名配置利用范围

 1) 协理在 <result-path-aliases> 配置中引用前边定义的别名

  (示例:上边配置中 ${index} 的其实路径为
‘/jsp/test/index.jsp’)

  <result-path-aliases>
    <alias name=”jsp_base” path=”/jsp/test”/>
    <alias name=”index” path=”${jsp_base}/index.jsp”/>

  </result-path-aliases>

 2) 允许在 <action-convention> 的 ‘dispatch-file-path’ 和
‘dispatch-file-path’ 配置中采用别名

  (示例:上面配置中 ‘dispatch-file-path’
的其实路径为 ‘/jsp’)

  <action-convention
    dispatch-file-path=”${ac_path}”
    <!– 别的配置(略)…
–>

  />

  <result-path-aliases>
    <alias name=”ac_path” path=”/jsp”/>

  </result-path-aliases>

6、其他更新

 1) 修改 org.jessma.util.PackageHelper,插手包扫描相关办法
 2) 信赖库 “jessma-lib” 中的所有 jar 包更新到最新版本
 3) 更新支出手册《JessMA 高效 Java MVC & REST 开发框架 (v3.2.2)》
 4) 伸张一个 JessMA 项目模板工程:HelloJessMA

7、应用程序升级表明

 1) JessMA 3.2.1 升级到 JessMA 3.2.2:完全匹配,可一贯晋级
 2) Portal-Basic 3.1.1 及更早版本升级到 JessMA 3.2.2:(参考 JessMA
3.2.1 的提高表明)

8、JessMA 3.2.1 历史更新:《JessMA 3.2.1
Release》


CodeProject

网站地图xml地图