读书人

【Spring】学习spring调整hibernate的

发布时间: 2012-08-27 21:21:56 作者: rapoo

【Spring】学习spring整合hibernate的callback+template机制

?

最近看spring的时候,看到JdbcTemplate的时候,发现其实现方法极其ugly。

?

概念:(从网上抄的,哥不懂啊【Spring】学习spring调整hibernate的callback+template机制

1、callback机制。

摘自http://www.iteye.com/topic/727249?感觉有点通俗。

?

你有一个复杂的问题解决不了,打电话给你的同学,你的同学说可以解决这个问题,但是需要一些时间,那么你不可能一直拿着电话在那里等,你会把你的电话号码告诉他,让他解决之后打电话通知你。即回调就是体现在你的同学又反过来拨打你的号码。

?

解释:将电话号码(自己的引用)给朋友,朋友再打电话(调用自己引用的方法)回拨给自己

?

Ajax中的异步+回调机制:

public Object execute(TransactionCallback action) throws TransactionException {  if (this.transactionManager instanceof CallbackPreferringPlatformTransactionManager) {    return ((CallbackPreferringPlatformTransactionManager) this.transactionManager).execute(this, action);  } else {     TransactionStatus status = this.transactionManager.getTransaction(this);//模板,获取参数     Object result = null;     try {         result = action.doInTransaction(status);//调用传入引用的方法,也就是我们自己定义的功能}    catch (RuntimeException ex) {        //Transactional code threw application exception -> rollback         rollbackOnException(status, ex);         throw ex;    }catch (Error err) {rollbackOnException(status, err);throw err;}    this.transactionManager.commit(status);    return result;  }}

?callback机制优点显而易见,不用extends JdbcTemplate,十分灵活

?

结论:如果template?的每个步骤都需要我们实现,那么用callback就很难定制了,但是如果只需要很少甚至就一个步骤(比如JDBC中的sql操作方法[不关心事务的,因为已经由Template定制好了,我日!])就可以采用callback机制啦。我擦

读书人网 >软件架构设计

热点推荐