`
canonical
  • 浏览: 368195 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AOP之透明持久化

阅读更多
  http://partech.blogdriver.com/partech/1217744.html
  partech基于AspectJ对于AOP的深入应用作了一些有益的探索。ORM的价值之一正在于通过ORM引擎对于对象上的局部操作作出持久化诠释(参见 面向对象之形式系统 )。在partech的方案中,对象删除操作(destroy)的引入显得有些勉强:因为我们需要标记一个删除的时刻,所以调用了一次空的destroy()方法。但是如果在事件驱动的应用场景中,调用时刻唾手可得,这样的问题便很少出现了。
  我个人所关心的方向主要是框架层面上对于AOP概念的应用。在Witrix平台的BizFlow方案中,借助于框架技术的支撑,我们甚至连new和set调用都不需要,例如在biz文件中只需要声明相应的事件响应函数,框架负责生成界面从用户处收集信息,负责创建对象,负责执行保存和删除操作:no new ,no set, no save, no load, no remove.
java 代码
 
  1. 〈Add-default
  2.   <source> 〈source〉</source>
  3.      do anything on entity to be added  
  4.    〈/source〉
  5.  〈/Add-default>
  6. 〈Remove-default〉
  7. 〈/Remove-default〉

  8. 〈ViewDetail-default〉
  9.   <source>  〈source〉</source>
  10.         entity is accessible here  
  11.     〈/source〉
  12.  〈/ViewDetail-default〉

BizFlow的实作中是实现为DaoWebAction的一个interceptor。
分享到:
评论
2 楼 canonical 2006-12-10  
BizFlow并不是一种通用的语言级别的技术,它属于Witrix框架技术的一部分。在前台选中一个实体,对它进行操作的时候,提交到后台会触发BizFlow中的某个Action。如果是删除操作,则缺省会调用到Remove-default段. 可以把BizFlow里所描述的看作是事件响应函数,删除时刻是由用户的操作所标定的.
如果在删除操作前后做一些事情,则
<Remove-default>
<source>
  do something before remove
  <biz:Proceed/>
  do something after remove
</source>
</Remove-default>

如果没有调用<biz:SkipProceed/>,例如Remove-default段里不写任何代码,则缺省情况下会执行最终的数据库操作,这与一般的AOP调用是不同的,也是我所谓偏置的含义.
1 楼 partech 2006-12-07  
没看明白你是如何实现关于获取删除时刻的,能否详细些?

相关推荐

    Spring持久化模板总结

    在Spring框架中,持久化是将应用程序数据存储到数据库的关键环节。Spring提供了多种持久化模板,如JdbcTemplate和HibernateTemplate,以简化数据库操作并减少代码中的样板代码。这两个模板都是Spring JDBC模块的一...

    SpringAOP整合Hibernate并使用事务(模拟买书的过程)

    在Spring框架中,我们可以利用Hibernate SessionFactory和Session接口进行数据持久化操作。 集成Spring AOP和Hibernate进行事务管理,通常会涉及以下几个步骤: 1. 配置Hibernate:首先,我们需要配置Hibernate的...

    Spring-AOP编程.docx

    AOP 的使用场景非常广泛,例如事务处理、日志管理、权限控制、性能优化、持久化、资源池、同步、事务等等。AOP 可以将这些横切关注点封装起来,减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可...

    ssm aop ioc mvc

    MyBatis的Mapper接口使得Service层的代码更加简洁,与数据库交互的过程透明化。 总结来说,SSM框架组合提供了从Web请求处理到数据库操作的一整套解决方案,降低了开发复杂性,提高了代码的可读性和可维护性。开发者...

    草稿:SSM整合-用springaop-demo01实现了注解AOP,SSM-MybatisOneForOne-demo01实现

    总结来说,"springaop-demo01"展示了如何在Spring框架中使用注解AOP进行切面编程,实现对业务代码的透明增强;而"SSM-MybatisOneForOne-demo01"则展示了在SSM整合中,如何通过MyBatis的一对一映射处理两个表之间的...

    AutoLoadCache是基于AOPAnnotation等技术实现的高效的缓存管理解决方案

    尽管如此,选择哪种缓存库取决于具体项目的需求,例如对内存使用、分布式支持、持久化能力等方面的考虑。 总结,AutoLoadCache是一个强大的缓存管理解决方案,通过AOP和注解实现了缓存与业务逻辑的解耦,同时提供了...

    spring-framework-4-开发手册.pdf

    Spring Framework 是一个轻...Spring Framework 支 持声明式事务管理,通过 RMI 或 Web 服务远程访问你的逻辑,并支持多种选择持久化你的 数据。它提供了一个全功能的 MVC 框架,使您能够将 AOP 透明地集成到您的软件。

    使用jboss cache 作为pojo cache

    - **复制与持久化**: 支持复制和持久化,提供透明的细粒度缓存。 - **多环境适应**: 可在任何Java标准版环境中运行,如应用服务器内或独立程序中。 - **应用示例**: 用于EJB 3.0的stateful session bean集群和...

    spring-orm.jar

    3. AOP集成:Spring的面向切面编程(AOP)使得可以在全局范围内处理持久化逻辑,如日志、事务控制等。 4. 对象/关系映射工具:Spring ORM为不同的ORM框架提供统一的API,减少学习成本,同时提高了代码的可移植性。 ...

    Java三大框架JAR包

    ORM引擎负责对象关系映射,SQL生成器根据对象操作自动生成相应的SQL,CGLIB和ASM则用于动态代理和字节码处理,以实现AOP和透明化持久化。 SSH_JAR这个压缩包可能包含了这三个框架的整合版JAR文件,方便开发者在项目...

    Strtus2+spring+hibernate

    Hibernate通过XML配置文件或注解来定义对象和表之间的映射关系,实现了对象的透明持久化。 在"Strtus2+spring+hibernate"的整合中,Spring通常作为整个应用的中心,负责管理其他组件(如Struts2的Action和Hibernate...

    XPrevail - .NET Prevalence Object Layer-开源

    XPrevail 是一个专为 .NET 平台设计的开源对象持久化框架,它的核心目标是为 .NET 开发者提供一个简单且强大的工具,以便于实现对象到数据库的透明持久化。XPrevail 集成了面向方面的编程(AOP)理念,同时提供了...

    ssh整合jar包

    在Hibernate中,ASM被用来生成和修改类的字节码,以实现透明的持久化。同时,Spring在实现AOP代理时,也可以选择使用ASM来生成代理类,尤其是在CGLIB代理模式下。 除了这些核心库,SSH整合还需要其他的jar包,如...

    Spring Framework 开发参考手册

    Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。Spring提供了全功能的 MVC framework, 以及透明集成AOP到你...

    Jboss技术文档

    此外,JBossCache的启动提供了一个内存中的、可复制的、事务性的缓存系统,具有持久化能力,其AOP模块利用JBoss AOP实现细粒度复制,透明管理复杂对象。 展望未来,下一代JBoss应用服务器(暂定名JBoss 5)将继续...

    Spring-Reference_zh_CN

    Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。Spring提供了全功能的 MVC framework, 以及透明集成AOP到你...

    struts2 spring hibernate integration

    开发者可以使用Java对象直接操作数据库,简化了数据持久化的过程。Hibernate支持多种数据库,具有自动创建、更新数据库表结构的功能,并提供了 Criteria、HQL(Hibernate Query Language)等查询方式,提高了查询的...

    SSH.rar_ssh 教程

    Hibernate通过ORM(Object-Relational Mapping)技术,将Java对象与数据库表进行映射,实现了对象的透明持久化。它支持多种数据库,包括MySQL、Oracle等,并提供了Criteria、HQL(Hibernate Query Language)等多种...

    netctoss2

    通过将Java对象与数据库表进行映射,Hibernate实现了对象的透明持久化,开发者可以直接操作对象,而无需关心底层SQL。Hibernate支持HQL(Hibernate Query Language),提供了更接近面向对象的查询方式,同时也兼容...

    HibernetSpringStruts三者的作用

    - **透明持久化**:Hibernate 提供了自动化的持久化服务,包括缓存机制、对象的 CRUD 操作等,使得开发者无需关心具体的持久化细节。 - **跨平台性**:Hibernate 支持多种数据库平台,并且可以无缝地应用于各种 Java...

Global site tag (gtag.js) - Google Analytics