bboss persistent事务管理介绍 (六)

简介: 4.9.9声明式事务使用实例 4.9.9.1声明式事务简介 声明式事务通过系统中基于java动态代理机制的aop框架实现,这个框架对业务组件进行有效的管理,包括业务组件的依赖注入,业务组件同步方法调用管理,业务组件拦截器的配置管理,业务组件方法事务控制。

4.9.9声明式事务使用实例

4.9.9.1声明式事务简介

声明式事务通过系统中基于java动态代理机制的aop框架实现,这个框架对业务组件进行有效的管理,包括业务组件的依赖注入,业务组件同步方法调用管理,业务组件拦截器的配置管理,业务组件方法事务控制。要想实现这些功能只需将业务组件配置到xml文件中即可,配置文件主文件在位于classes目录下,主文件为manager-provider.xml,可以有多个配置文件,将这些文件相对路径配置到主文件中,再通过BaseSPIManager组件提供的管理接口获取每个业务组件的接口实例即可。

4.9.9.2声明式事务配置管理

l        配置语法

整个aop框架的xml配置文件语法如下:

<!--

    manager-config(manager+,mangerimport*)

    manager(provider+,synchronize?,transactions?,reference*,interceptor*)

    manager-attributelist{

       id-管理服务者id

       jndiname-管理服务者jndi属性,目前未使用

       singlable-是否是单实例模式

       default-是否是缺省管理服务

       interceptor-管理服务器的拦截器

    }

    ##

    # 如果在系统中配置了多个拦截器,整个框架能够确保每个拦截器都被调用

    # 调用的顺序为 拦截器配置的顺序,如果同时通过manager节点的属性interceptor定义了一个拦截器,

    # 则会首先调用这个属性对应的拦截器,然后再调用其他拦截器

    ##

    interceptor(pcdata)

   

    interceptor-attributelist{

       class-拦截器的实现类,所有的拦截器都必须实现

             com.frameworkset.proxy.Interceptor接口

             目前系统中提供了以下缺省拦截器:

                数据库事务管理拦截器(com.chinacreator.spi.

                interceptor.TransactionInterceptor,支持对声明式事务的管理

    }

    reference(pcdata)

    reference-attributelist{

       fieldname-对应的管理服务提供者中的字段名称,必选属性

       refid-引用的管理服务的id,对应manager节点的id属性,必选属性

       reftype-对应的管理服务提供者类型,可选属性

    }

    provider(pcdata)  

    provider-attributelist{

       type-服务提供者标识id

       used-服务提供者是否被启用,缺省值为false

       class-服务提供者对应的class

       prior-provider调用的优先级

    }

    synchronize(method+)

    synchronize-attributelist{

       enabled-是否启用同步功能,如果没有启用同步功能

               即使配置了多个服务提供者的同步方法,所有的同步功能将不起作用

    }

    transactions(method+)

   

    method(param*,rollbackexceptions?)

    method-attributelist{

       name-方法名称,namepattern不能同时出现

       pattern-匹配方法名称的正则表达式

       txtype-需要控制的事务类型,取值范围:

                  NEW_TRANSACTION

                  REQUIRED_TRANSACTION

                  MAYBE_TRANSACTION

                  NO_TRANSACTION

    }

    param(pcdata)

    param-attributelist{

       type-

    }

    rollbackexceptions(exception+)

   

    exception(pcdata)

    exception-attributelist{

       class-

       type-IMPLEMENTS,INSTANCEOF

    }

   

    mangerimport(pcdata)

    mangerimport-attributelist{

       file-

    }

-->

在上述配置语法中的粉红色规则就是与声明式事务相关的语法。这里只介绍有关事务的配置语法。

 

目录
相关文章
SpringBoot中Transaction注解不起作用原因
SpringBoot中Transaction注解不起作用原因
134 0
|
Java 数据库连接 数据库
Hibernate中@Embedded和@Embeddable注解
在使用实体类生成对应的数据库表时,很多的时候都会遇到这种情况:在一个实体类中引用另外的实体类,一般遇上这种情况,我们使用@OneToOne、@OneToMany、@ManyToOne、@ManyToMany这4个注解比较多,但是好奇害死猫,除了这四个有没有别的使用情况,尤其是一个实体类要在多个不同的实体类中进行使用,而本身又不需要独立生成一个数据库表,这就是需要@Embedded、@Embeddable的时候了,下面分成4类来说明在一个实体类中引用另外的实体类的情况,具体的数据库环境是MySQL 5.7。
1492 0
bboss持久层事务管理组件TransactionManager增加两个release方法
bboss持久层事务管理组件TransactionManager增加release和releasenolog两个方法,可以在finally块中调用它们来释放事务资源,使得bboss持久层框架的编程事务管理变得更加优雅、更加轻松。
732 0
|
数据库 数据格式 XML
bboss多数据库事务管理
本文以一个简单的实例来介绍bbossgroups中持久层框架如何实现多数据库事务: @Test public void testMutiDBTX() { TransactionManager tm = new TransactionManager(); try { tm.
627 0
|
人工智能 测试技术 数据格式
bboss-persistent结合bboss-aop实现注解事务
bboss-persistent结合bboss-aop也可以实现注解事务哦. 先看一个业务组件: package org.frameworkset.spi.transaction.annotation; import java.
629 0
|
SQL 数据库 Java
bboss persistent 实现数据库更新操作
4.5 更新操作代码段    4.5.1预编译更新操作        PreparedDBUtil preDBUtil = new PreparedDBUtil();        int pk = 0;        String sqlstr = "update OFFICE_...
589 0
|
SQL 关系型数据库 MySQL
关于bboss persistent主键生成机制的说明
4.14 主键的生成 bboss主键生成有两种模式,一种模式是在对象主键属性上加@PrimaryKey(uuid主键)或者@PrimaryKey(auto=true,pkname="xxxx")(pkname对应tableinfo中的TABLE_NAME子字段的值),另外一种模式就是通过DBUtil.getNextPrimaryKey方法再程序中获取(前提是表的主键信息需要配置到tableinfo中,可以支持uuid和oracle的sequence,以及mysql的自定义sequence)。
1044 0
|
数据库
bboss persistent事务管理介绍 (四)
l       不带返回值的模板方法使用实例   TemplateDBUtil.executeTemplate(               new JDBCTemplate(){                   /**                    * 整个e...
649 0
|
数据库 程序员
bboss persistent事务管理介绍 (二)
4.9.5 事务管理的相关接口 事务管理器:com.frameworkset.orm.transaction.TransactionManager ,每个 接口表: 名称 功能描述 说明     public voi...
722 0