MyBatis很快 Java Web 开发框架 JessMA v3.3.1 正式公告

4、其余更新


4、应用程序升级表达

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

1) JessMA 3.2.2 升级到 JessMA 3.2.3:完全协作,可径直升级
2) Portal-Basic 3.1.1 及更早版本升级到 JessMA 3.2.3:(参考 JessMA 3.2.1 的提高表明)

    (示例)
    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 (可以行使 ‘new MyDaoB(mgr)’ 成立 DAO
对象)
                MyDaoB dao2 =
Facade.create(MyDaoB.class, mgr);

    ★ 效用完善:内置稳定火速的 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 的硬性目的,从各种模块的安插性到每行代码的落到实处都力求切中要害高效。此外,Portal-Basi c并没有对 JSP/Servet API 进行过多封装,开发者如故选用 JSP/Servet API 开发应用程序,没有过多的抄袭,性能得到保险。 
    ★ 非凡的施用体验:JessMA 的统筹目的之一是提供优质的成本体验,尽量裁减应用程序开发者的干活,API 的宏图力求简约、完整、明确。同时,JessMA 为使用开发提供了大气 Util 工具,用来拍卖应用程序开发进度中国和东瀛常会遇见的寻常问题,进一步压缩应用程序开发者的劳作担负。 
    ★ 平缓的就学曲线:学习应用 JessMA 只需控制一定的 Core Java 与 JSP/Servlet 知识,本开发手册会循规蹈矩演讲每个知识点,每个知识点都会结合完整的以身作则举办描述,知识点之间上下呼应,确保学习者在攻读时温故知新,融会贯通。 
    ★ 完善的技术辅助:除了提供周到的支入手册和示范代码以外,还提供博客和 QQ 群用于解答使用 JessMA 进程中碰到的装有题目,也得以访问 JessMA 官方网站打探越多消息。

1) @FormBean 申明扶助注入联级属性
2) org.jessma.util.BeanHelper 的 createBean(…) / setPropertiesOr菲尔德(Field)Values(…) 体系措施支持联级装配 Bean

1) 援救在 <result-path-aliases> 配置中引用前面定义的别名

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

5、应用程序升级表达

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

7、应用程序升级表达

    基础运用框架、MVC框架和DAO框架都看重于公私组件,其中基础运用框架同时借助于DAO框架,因而,MVC框架和DAO框架能脱离JessMA单独行使(当然,要附带上集体组件)。例如:可以把MVC框架和DAO框架用于JessMA之外的其余Web项目;也得以把DAO框架用于非Web项目(如:Swing / SWT桌面应用)。

1) 修改 org.jessma.util.PackageHelper,出席包扫描相关措施
2) 看重库 “jessma-lib” 中的所有 jar 包更新到新型版本
3) 更新支入手册《JessMA 高效 Java MVC & REST 开发框架 (v3.2.2)》
4) 增加一个 JessMA 项目模板工程:HelloJessMA

1、增加 Guice 支持

    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

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

*    (例如:下面的 Form 对应的 Bean 中,b、x 和 y 为联级 Bean)

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

JessMA 3.3.1
更新:

2、Form Bean 协理联级属性注入

3、其余更新

(注:这一次更新的要害内容是升级 DAO 组件)

    (示例:下边配置中 ${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>

    增添差插件是基于JessMA主旨框架基础上的成效延伸,不是JessMA的必需组件。可由应用程序开发人士依据须求活动定制。JessMA发行包中也自带了一些恢宏插件(如:jessma-ext-spring和jessma-ext-rest)。

1) 伸张  Guice 插件包 jessma-ext-guice-3.2.3.jar 用于整合 Guice
2) Action 通过 @GuiceBean/@GuiceBeans 注明注脚 Guice Bean
3) Action 通过拦截器 com.bruce.ext.guice.GuiceInjectFilter 解析 @GuiceBean/@GuiceBeans 表明并流入 Guice Bean
4) 可以在 Guice Bean 中流入 JessMA DAO 对象,从而能在 Guice 环境下利用 JessMA DAO 子框架
5) 示例工程 MyJessMA 增添 Guice 整合示例

        <!–
            enable :是不是打开 Bean Validation 机制(默许:开启)
            bundle:验证文本音信的 Bundle(默许:res.validation-message)
            validator:验证器类(默许:org.jessma.mvc.validation.HibernateBeanValidator)
        –>
        <bean-validation
            enable=”true”
            bundle=”com.bruce.res.validation-message”
            validator=”org.jessma.mvc.validation.HibernateBeanValidator”
        />

2、支持 JSR
303 Bean Validation 机制

    (注:平日状态下,应用程序必要创制 GuiceInjectFilter 的子类并改写 configModules() 方法,用于定义 Module 的绑定规则)
    public class MyGuiceInjectFilter extends GuiceInjectFilter
    {
        @Override
        protected Collection<Module> configModules()
        {
            Set<Module> modules = new HashSet<Module>();
            // 出席第三个 Module
            modules.add(new Module()
            {
                @Override
                public void configure(Binder binder)
                {
                    // 配置绑定规则
                    // ……
                }
            });
            // ……
            // 加入第N个 Module
            modules.add(new Module()
            {
                @Override
                public void configure(Binder binder)
                {
                    // 配置绑定规则
                    // ……
                }
            });
            return modules;
        }
    }

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

    ● 扩充插件

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

1) 依赖库 “jessma-lib” 中的所有 jar 包更新到新型版本
2) 看重库 “spring-lib” 中的所有 jar 包更新到最新版本
3) 增加 Guice 依赖库 “guice-lib”
4) 更新支出手册《JessMA Java Web 应用开发框架 (v3.2.3)》

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

* JessMA 应用程序依赖关系

    <form>
        <input name=”a” value=”…”>
        <input name=”b.c” value=”…”>
        <input name=”b.d” value=”…”>
        <input name=”x.y.z” value=”…”>
    </form>*

6、其他更新

1) 若是打开了Bean Validation
机制,应用程序可对由 @FormBean 声明的 Form Bean 执行活动验证
2) @FormBean 声明扩充 ‘validate()’ 和 ‘groups()’
三个属性,分别提示是不是对 Form Bean 执行机关验证,以及自行验证的验证组
3) 假若自动验证成功则转入 Action 的 validate()
方法继续执行,否则会把错误音信写入 Action 的 errors 集合并跳转到 Action
的 INPUT 视图
4) 应用程序还足以每天调用 ActionSupport 的 validateBean() /
validateBeanAndAddErrors() 方法求证其余任何 Bean
5) 增加错误音信输出标签
<p:err/>,帮忙多种措施和格式彰显错误音讯(参考:<p:err/>
及其达成类 org.jessma.tag.Error 相关切释)
(参考:下边的 MVC
配置文件条目)

    MVC框架加载MVC配置文件(默认:mvc-config.xml),通过前端控制器ActionDispatcher接收和分析所有的客户HTTP请求,然后交由相应的Action进行处理,最终生成对应的视图重临给客户端。MVC框架在org.jessma.mvc包中落实。

JessMA 3.2.2 更新:

1、org.jessma.dao.hbn.HibernateSessionMgr 支持活动扫描实体对象

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

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

    JessMA 官方网站:http://www.jessma.org
    JessMA 下载地址:http://www.oschina.net/p/portal-basic
    JessMA 在线示例:http://demo.jessma.org
    JessMA 在线 API 文档:http://www.jessma.org/doc

JessMA 3.2.3
更新:

3、规范“嵌套 DAO
方法”调用规则(详情参见:开发手册第 10.6 节)

MyBatis 1


        <!–
            default-locale:应用程序默许语言选用(默许:与当前操作系统一致)
            default-bundle:应用程序默许 Bundle(默许:res.application-message)
        –>
        <i18n default-locale=”en_US” default-bundle=”com.bruce.res.application-message” />

    公共组件提供多种通用功用辅助类(如:字符串处理、类型转换、分页算法、压缩/解压、加解密、邮件发送等),那一个类与框架无关,可在任何应用程序中应用。公共组件在以下包中贯彻:
    ▪ org.jessma.util
    ▪ org.jessma.util.archive
    ▪ org.jessma.util.cache
    ▪ org.jessma.util.http
    ▪ org.jessma.util.mail

    JessMA(原名:Portal-Basic)是一套功效齐备的高性能 Full-Stack Web 应用开发框架,内置可增加的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截、Form / Dao / Spring Bean 装配、国际化、文件上传下载和页面静态化等基础 Web 应用组件,提供高速灵活的纯 Jsp/Servlet API 编程模型,可周详组合 Spring / Guice,援救 Action Convention,能高效支付传统风格和 RESTful 风格应用程序,文档和演示完善,相当简单学习。

2、org.jessma.dao.mybatis.MyBatisSessionMgr 接济自动扫描 SQL Mapper 接口

    <manager name=”mgr-1″ class=”org.jessma.dao.hbn.HibernateSessionMgr”>
        <initialize-args>
            <arg></arg>
            <arg>com\.bruce\..+\.model</arg>
        </initialize-args>
    </manager>

3、所有 JDBC Session Manager 均废除 ‘isXml’ 配置参数,改为基于布署文件的伸张名自动识别配置文件类型


1) 最外层的
DAO 对象必须由 FacadeProxy 成立
2) 内层的 DAO 对象可以用 new 或 FacadeProxy 等随意格局开创
3) 最外层的 DAO 方法作为一个业务单元,并且不会有嵌套事务
4) 事务属性由最外层的 DAO 方法指定,忽略所有内层 DAO
方法的作业属性

1) JessMA 3.2.x 升级到 JessMA 3.3.1
要求做一下工作:
    A) 把原本对 org.jessma.ext.dao 包的引用改为 org.jessma.dao
    B) 把资源文件 “res.message-resource” 改为 “res.application-message”
或在 <i18n/> 配置项中指定
    C) 如有要求,修改 MVC 主从陈设文件、应用程序配置文件以及 REST
配置文件的 Sechema
    D) 即使要在 汤姆cat-6.0 中开启 Bean Validation 机制,需求把
“tomcat_7_to_6_lib” 文件夹下的 3 个 jar 文件替换  汤姆(Tom)cat-6.0 的 lib
目录下的同名文件
2) Portal-Basic 3.1.1 及更早版本升级到 JessMA 3.3.1:(参考 JessMA 3.2.1
的升官表明)

        <action-filters>
            <!– 优先检查客户请求中是或不是带闻明称为 ‘__locale’ 的乞请参数 –>
            <filter class=”org.jessma.mvc.i18n.URLI18nFilter”/>
            <!– 然后检查请求是或不是带知名称为 ‘__locale’ 的 Cookie –>
            <filter class=”org.jessma.mvc.i18n.CookieI18nFilter”/>
            <!– 最后根据客户端浏览器的言语选择设置当前呼吁的言语属性 –>
            <filter class=”org.jessma.mvc.i18n.BrowserI18nFilter”/>
        </action-filters>

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

1) 协助设置应用程序器默许 Locale 和默许Bundle
    A) 即使不部署器默许 Locale 则动用系统本来的默认 Locale
    B) 如若不配备默许 Bundle,则默许 Bundle 为
‘res.application-message’
(参考:上边的 MVC
配置文件条目)

    ● 基础运用框架

    ● MVC框架

JessMA首要包含以下5个部分:

    (示例:上边配置中 ‘dispatch-file-path’ 的实在路径为 ‘/jsp’)
    <action-convention
        dispatch-file-path=”${ac_path}”
        <!– 别的配置(略)… –>
    />
    <result-path-aliases>
        <alias name=”ac_path” path=”/jsp”/>
    </result-path-aliases>

* JessMA 总体架构

2) 援助基于 URL、库克(Cook)ie
或浏览器语言拔取的国际化格局
    A) org.jessma.mvc.i18n.URLI18nFilter        :基于 URL
请求参数的国际化拦截器
    B) org.jessma.mvc.i18n.库克ieI18nFilter   :基于 库克(Cook)ie
的国际化拦截器
    C)
org.jessma.mvc.i18n.BrowserI18nFilter:基于浏览器语言选取的国际化拦截器
    D) JessMA 默许基于 Session
完毕国际化,但足以经过配备上述拦截器改为对应的贯彻格局
    E) 上述拦截器的国际化属性是按照 Request Attribute 的,由此会遮掩
Session 的国际化设置
    F) 上述拦截器可以组成使用,一般顺序为:URL -> Cookie ->
Browser
(例如:上边同时安顿了 URL、Cookie 和
Browser 多少个国际化拦截器)

    ● DAO框架

    基础运用框架加载应用程序配置文件(默认:app-config.xml),监听应用程序的生命周期事件,并向上层应用发送应用程序启动和倒闭通告,应用程序可以处理那么些文告举办额外的先河化或理清工作。基础运用框架在org.jessma.app包中是落到实处。

4、org.jessma.dao.FacadeProxy 增添方法 executeCustomTransaction(…) 匡助实施自定义事务

1、增强国际化成效

    ● 公共组件

MyBatis,1) org.jessma.ext.dao.* 包中的类移到
org.jessma.dao
2) 应用程序默许 Bundle 由 “res.message-resource” 改为
“res.application-message”
3) 修改 MVC 主/从陈设文件、应用程序配置文件以及 REST 配置文件的 Sechema
引用(参考 MyJessMA 测试工程)
4) 更新支出手册《JessMA Java Web 应用开发框架 (v3.3.1)》
5) 整理器重库 “jessma-lib”,删除多余的 jar 包4) 事务属性由最外层的 DAO
方法指定,忽略所有内层 DAO 方法的事情属性

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

    JessMA 在布署之初就足够爱护效益、性能与利用体验。JessMA 紧要特点:

MyBatis 2

MyBatis 3

网站地图xml地图