guzz 1.3.0大版本发布,支持Spring事务

http://www.cn-java.com/www1/?action-viewnews-itemid-104913

Guzz是一种用来进行快速开发和高性能网站设计的框架,用于替代或者补充hibernate或ibatis的持久化实现,并提供更多的大型系统架构设计支持。guzz的目标是使得大型化网站设计更加简单,团队分工更加明确,框架在使用时更少出问题。主要设计理念:

更容易的团队管理和人员分工

现代大规模系统设计

支持像hibernate一样的对象持久,映射和方便的增删改查

支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化

支持大量的数据库和主从分离

支持数据表在多组机器中水平分布(Shard)

组件化服务(SOA),构建企业基础服务平台

提高xx%倍效率的快速开发

支持配置管理服务器,对所有应用程序的配置进行统一管理

示例代码:

TransactionManager tm = guzzContext.getTransactionManager() ;
ReadonlyTranSession session = getTransactionManager().openDelayReadTran() ;
try{
	SearchExpression se = SearchExpression.forClass(SystemLog.class) ;
	se.and(Terms.eq("categoryId", 18)) ;
	se.setOrderBy("importance desc, id asc") ;
	return session.list(se) ;
}finally{
	session.close() ;
}

大版本更新:

1.支持Spring声明式事务。在这个版本中,您可以像配置Hibernate一样配置Guzz,让Spring进行声明的全局事务管理。GuzzSpring事务支持标准Spring事务的所有配置,除了嵌套事务和JTA。嵌套事务Hibernate也不支持,如果需要使用,请按照hackHibernate的方式使用。

事务的配置方法为Spring标准配置方式,只需要将transactionManager定义为:

<bean id="transactionManager" class="org.guzz.web.context.spring.GuzzTransactionManager">     
<property name="guzzContext" ref="guzzContext" />     
</bean>

即可。使用GuzzBaseDao的用户,需要在guzz.xml的tran元素上增加一个属性以声明guzz开始使用Spring事务:<tranlocator="spring">

典型配置:

<!-- 定义事务管理器(声明式的事务) -->       
<bean id="transactionManager" class="org.guzz.web.context.spring.GuzzTransactionManager">     
    <property name="guzzContext" ref="guzzContext" />     
</bean>   
  
<bean id="transactionInterceptor"       
    class="org.springframework.transaction.interceptor.TransactionInterceptor">       
    <property name="transactionManager" ref="transactionManager" />       
    <!-- 配置事务属性 -->       
    <property name="transactionAttributes">       
        <props>       
            <prop key="*">PROPAGATION_REQUIRED</prop>       
        </props>       
    </property>       
</bean>     
       
<bean class="people.manager.impl.MyBeanNameAutoProxyCreator">       
    <property name="beanNames">       
        <list>   
            <value>*Manager</value>   
        </list>   
    </property>   
    <property name="interceptorNames">       
        <list>       
            <value>transactionInterceptor</value>       
        </list>       
    </property>       
</bean>

复制打印

2.数据库操作API增加事务隔离级别设置和查询超时时间设置。

什么是guzz?

guzz是一套用于多数据库编程的ORM框架,用于替代hibernate和ibatis,实现在一套系统中轻松使用多台数据库。guzz同时提供通用数据计算和配置管理等,简化系统复杂度,为系统在数据层的设计提供一站式解决方案。

guzz主要功能与特点:

现代大规模系统设计,技术上吸收了ibatis/hibernate的优点

支持应用程序使用大量的数据库和主从读写分离

支持数据库表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务

支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)

支持1张大表分切后的小表,分布到不同的数据库中(VirtualDB)

支持超越范式的特殊关联、非结构化数据等异构资源POJO模式的统一读取

支持组件化服务(SOA)和服务相互依赖,构建企业/项目实施基础平台

提供面向对象的数据库读取标签(JSPTaglib),加快页面展示层的快速变更、开发与部署

对于大部分场景,支持像hibernate一样的对象持久、映射和方便的增删改查,提高开发效率

对于复杂场景,支持像ibatis一样,让DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试

更简洁、更好用、更容易控制的批操作接口

支持在线加载与调试SQL。按照应用策略,从文件/数据库/WebService等途径,动态提取与使用SQL语句(DynamicSQL)

支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理

项目地址:[url]http://code.google.com/p/guzz/[/url]

文档:[url]http://code.google.com/p/guzz/wiki/AboutGuzz?tm=6[/url]

下载:[url]http://code.google.com/p/guzz/downloads/list[/url]

相关推荐