学习Spring必须了解的基础知识——回调机制
上面这张图如果能看得懂就能理解什么是回调机制:
A对象在调用a()方法时会调用B对象的b()方法,b()方法必须能调用A对象的callback()方法。
谁白了:a()方法有B对象b()方法的引用,b()方法有对a对象中callback()的引用。
| package priv.lirenhe.callback; public interface CallBack { public void claimAnswer(String answer); } |
| package priv.lirenhe.callback; public interface TeacherA { public void askQuestion(StudentB student); } |
| package priv.lirenhe.callback; public class TeacherAImpl implements CallBack,TeacherA{//实现CallBack类从而实现claimAnswer方法 public TeacherAImpl() { // TODO Auto-generated constructor stub } @Override public void claimAnswer(String answer) { System.out.println("该同学的答案是:"+answer); } @Override public void askQuestion(StudentB student){//有对对象B的引用 student.resolveQues(this); } } |
| package priv.lirenhe.callback; public interface StudentB { public String resolveQues(CallBack callBack); } |
| package priv.lirenhe.callback; public class StudentBImpl implements StudentB { public StudentBImpl() { // TODO Auto-generated constructor stub } @Override public String resolveQues(CallBack callBack) {//有CallBack对象的应用 String answer = "你去死"; callBack.claimAnswer(answer); return answer; } } |
| package priv.lirenhe.callback; public class TestCallBack { public TestCallBack() { // TODO Auto-generated constructor stub } public static void main(String[] args) { StudentBImpl studentB = new StudentBImpl(); TeacherAImpl teacherA = new TeacherAImpl(); teacherA.askQuestion(studentB); } } |
学习Spring必须了解的基础知识——回调机制的更多相关文章
- 学习 shell脚本之前的基础知识
转载自:http://www.92csz.com/study/linux/12.htm 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- 学习shell脚本之前的基础知识
日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...
- Python学习系列(二)(基础知识)
Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...
- Spring笔记01(基础知识)
1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...
- 大数据学习笔记——Java篇之基础知识
Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学 ...
- 2.Docker容器学习之新生入门必备基础知识
0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...
- Spring的事务管理基础知识
1.数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...
随机推荐
- hadoop生态系统主要架构图汇总
1 hadoop1.0时期架构 2 hadoop2.0时期架构 3 hdfs架构 [Active Namenode]:主 Master(只有一个),管理 HDFS 的名称空间,管理数据块映射信息:配置 ...
- Linux 安装Python和Django
1.下载python源码包 网址: https://www.python.org/ 在Downloads中打开Source code 由于 Django1.11.15不兼容3.7版本的python 所 ...
- [PHP]session回收机制及php.ini session生命期
由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效.当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/sessi ...
- Confluence 6 发送 Confluence 通知到其他 Confluence 服务器
你可以配置 Confluence 服务器向其他的 Confluence 服务器发送消息.在这种情况下,Confluence 服务器将不会显示 workbox. 希望发送消息到其他 Confluence ...
- SpringBoot定时任务
代码做定时任务:1.开个线程,线程里面休眠去做 2.使用一些定时任务的框架去做 1.创建TimerTest类 package com.cppdy.service; import org.springf ...
- Tomcat解决中文乱码并部署项目
1.在Tomcat下的server.xml中添加URIEncoding="UTF-8"(解决中文乱码的问题) 2.在Tomcat下的server.xml中添加<Context ...
- MySQL数据库下载、安装
地址:https://www.mysql.com/ 解压下载的文件 配置环境变量 新建系统变量 变量名:MYSQL_HOME 变量值:解压 mysql-5.7.24-winx64.zip 后的路径 ...
- Let the Balloon Rise <map>的应用
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the ...
- 使用git克隆项目、从dev分支上更新代码以及将代码提交到Coding(或GitHub)上面
本教程的目的: 这是个crm项目中,有两个分支一个是master 和 dev ,master主分支,不允许提交代码,我要拉去dev分支上最新的代码,并将修改后的项目,在推送到dev分支上. 一. 1. ...
- CentOS6.8安装MySQL5.7.20时报Curses library not found解决
报错如下: CMakeErroratcmake/readline.cmake:83(MESSAGE): Curseslibrarynotfound.Pleaseinstallappropriatepa ...