本文转载自:http://totty.iteye.com/blog/116192
看Spring源码中在sql操作处用回调函数觉得大为精妙,自己也写了一个demo,记录下来,以便以后可以参考。
TestCallBack.java 代码
package per;
public interface TestCallBack {
Object doSomeThing(TestExecute executor) ;
}
TestExecute.java 代码
package per;
public class TestExecute {
public Object doExecute1() {
System.out.println("in TestExecute doExecute1()");
System.out.println(" can do sql operation1");
return "";
}
public Object doExecute2() {
System.out.println("in TestExecute doExecute2()");
System.out.println(" can do sql operation2");
return "";
}
}
TestTemplate.java 代码
package per;
public class TestTemplate {
public Object execute(TestCallBack action) {
try {
System.out.println("in TestTemplate execute()");
System.out.println(" can create sql connection");
TestExecute executor = new TestExecute();
action.doSomeThing(executor);
return "";
} finally {
System.out.println("in TestTemplate finally");
System.out.println(" can close sql connection");
}
}
public Object doThing1() {
System.out.println("in TestTemplate doThing1()");
Object ob = execute(new TestCallBack() {
public Object doSomeThing(TestExecute executor) {
System.out.println("in TestTemplate doThing()'s callback method");
executor.doExecute1();
return "";
}
});
return ob;
}
public Object doThing2() {
System.out.println("in TestTemplate doThing2()");
Object ob = execute(new TestCallBack() {
public Object doSomeThing(TestExecute executor) {
System.out.println("in TestTemplate doThing()'s callback method");
executor.doExecute2();
return "";
}
});
return ob;
}
}
TestRun.java 代码
package per;
public class TestRun {
public static void main(String[] args) {
new TestTemplate().doThing1();
new TestTemplate().doThing2();
}
}
输出结果为:
in TestTemplate doThing1()
in TestTemplate execute()
can create sql connection
in TestTemplate doThing()'s callback method
in TestExecute doExecute1()
can do sql operation1
in TestTemplate finally
can close sql connection
in TestTemplate doThing2()
in TestTemplate execute()
can create sql connection
in TestTemplate doThing()'s callback method
in TestExecute doExecute2()
can do sql operation2
in TestTemplate finally
can close sql connection
用回调函数,我们可以把创建数据库连接和数据库关闭操作单独出去,而不用在每一次数据库操作时都要先建立连接,再进行数据库操作,操作完后还要关闭连接,而且数据库操作还得放在try catch finally当中。
Excellent, Rod Johnson !
分享到:
相关推荐
这个"完整版模块_回调函数.rar"压缩包文件很可能包含了一整套关于回调函数的教程、示例代码或者实战项目,旨在帮助学习者深入理解和掌握回调函数的使用。 回调函数,简单来说,就是一个被作为参数传递给另一个函数...
关于回调函数的具体实现,我们在文档中看到了一个查找链表中特定值的函数Search_List的例子。在这个例子中,Search_List函数通过一个比较函数指针compare作为参数,允许用户自定义如何比较链表中节点的值。这样,...
本文档主要介绍了在大彩物联型串口屏上使用LUA脚本进行编程时,涉及的一些核心概念是关于回调函数的使用方法以及编程注意事项。大彩LUA脚本API中提供了一系列的回调函数,这些函数在特定事件发生时被自动调用,可以...
本资源"DLL 回调函数 + Demo示例程序,VS2017 x64"提供了在Visual Studio 2017 64位环境下关于DLL回调函数的实例,确保在Debug和Release模式下都能正常运行。 首先,我们需要理解DLL是什么。DLL是动态链接库,它是...
本文将深入探讨如何在DLL中使用回调函数,以及如何通过回调函数实现主程序与DLL之间的通信,特别是在这个例子中,DLL窗口如何反写主程序的信息。 首先,了解回调函数的基本概念。回调函数是一种将函数指针作为参数...
可能包含了具体的信号槽连接示例,而`mainwindow.ui`则是Qt Designer生成的用户界面文件,`callback.pro`和`callback.pro.user`则是项目配置文件,它们共同构成了一个关于Qt回调函数使用的实例项目。
在"CallBackFun2015-12-31"这个文件中,很可能包含了关于如何在实际项目中实现回调函数模型的示例代码、教程或者案例研究,帮助开发者更好地理解和应用这种编程模式。深入研究这些资料,可以进一步提升在嵌入式程序...
通过阅读《C回调函数+.doc》和《轻松了解C语言回调函数.doc》,你可以获取更多关于函数指针和回调函数的详细解释,包括它们的工作原理、最佳实践以及可能遇到的问题。这些文档应该会涵盖如何定义和使用函数指针,...
在给定的文件`aa.html`中,可能包含一个关于JavaScript回调函数的实际示例,比如一个按钮点击事件的处理程序,或者一个使用`setTimeout`的计时器。通过查看和分析这个文件,你可以进一步了解回调函数在实际项目中的...
在 Delphi 编程中,回调函数是一种设计模式,它允许你将函数或方法作为参数传递给另一个函数,以便在特定时刻被...以上就是关于 Delphi 回调函数的简要介绍和应用示例,希望对你在 Delphi 编程中使用回调函数有所帮助。
在VC++编程中,回调函数和线程是两个非常重要的概念,它们在多任务...以上就是关于VC++中回调函数和线程的基本介绍和示例。理解并熟练掌握这些概念和技术,将有助于你在开发高效、多任务的C++应用程序时更加得心应手。
在C语言中,指针和回调函数是两个非常重要的概念,它们在编程中扮演着核心角色,尤其是在处理复杂数据...在提供的`CppApplication_1`文件中,可能包含了更多关于C语言指针回调函数的示例代码,供读者进一步学习和实践。
七、关于回调Funciton 你可以把Callback函数看作是一种特殊的消息响应函数,一般来说我们不会自己调用这种函数, 而是有某些系统函数调用,而且不需要向后传递消息。 只要象C/C++这样支持函数指针的语言都 有回调...
首先,关于回调函数的定义,它是指当一个函数作为参数传递到另一个函数里,并在那个函数内被调用。这里的重点是函数被调用的时机和方式是由外部函数来控制,而不是由函数自身直接调用。因此,即便回调函数在同步代码...
在这个"回调函数DEMO.rar"中,我们可以期待看到一系列关于如何在DELPHI中实现和使用回调函数的例子。可能包括以下知识点: 1. **函数指针**:在DELPHI中,函数指针是一种类型,它能够存储函数的地址,从而使我们...
总结来说,"test回调函数_窗体间传值"是一个关于在多窗体应用程序中使用回调函数进行数据传输的示例。通过定义委托、创建事件以及在窗体之间订阅和触发事件,我们可以实现在不同时刻和不同对象之间有效地共享和更新...
以下是一些关于JavaScript回调函数的关键点: 1. **回调函数定义**:回调函数是一个作为参数传递给其他函数的函数,这个参数通常是一个函数引用。当外部函数执行完毕或满足特定条件时,它会调用这个传递进来的函数...
回调函数是编程中的一种常见设计模式,特别是在处理异步操作时。回调函数允许我们将一个函数作为参数传递给另一个函数,以便在某个特定条件满足或异步操作完成后由被调用的函数执行。这种方式使得我们能够编写更加...
回调函数在编程中是一种设计模式,它允许我们将一个函数作为参数传递给另一个函数,以便在特定事件发生或操作完成后调用。回调函数的概念是异步编程的基础,尤其是在那些需要等待某些操作完成(如网络请求、定时任务...