????Java???÷??3????????????????????????
????1.??????ü??????????÷??
????2.???????????y??????spring ?? AOP????servlet???????????
???????? ???????????????????????????????????????????????????????????????????
????????????????????????????????????????????в????????????????????????????????л????????AOP??????????????????????
????Java ??? ?? class A ????????? ??class B ???y?? ????? ???????class A ?????
??????????
????public interface Callback {
????public void taskResult(String name);
????}
???????1????????
????/**
????* ????????????????????????????????????????????????????
????*
????*/
????public class Teacher1 implements Callback{
????@Override
????public void taskResult(String name) {
????// TODO Auto-generated method stub
????System.out.println(“????:”+name+”???”);
????}
????}
????????????????????????????????
????public class Student {
????Callback callback= null;
????//??????????????????
????public void setCallback(Callback callback)
????{
????this.callback=callback;
????}
????public void doTask()
????{
????for(int m=1;m<6;m++)
????{
????callback.taskResult(m+”??????”);
????}
????}
????}
??????????
????public class CallbackTest {
????public static void main(String[] args) {
????// TODO Auto-generated method stub
????Student student=new Student();
????//??????????????
????student.setCallback(new Teacher1());
????student.doTask();
????}
????}
????????????????????????????????????????????
????3.?????????????????????????л?????????????н???????????
??????????С?????С?????????С???????????С????????????????飬??С???????????С??????????????С????????????????? ?????С???в????????????????в?????????
???????????????
????public interface CallBack {
????/**
????* ?????С?????????????????????С?????????????
????* @param result ???
????*/
????public void solve(String result);
????}
????С???????????????С??????????????С????????????С????
????/**
????* ?????С??
????* @author xiaanming
????* ??????????????CallBack??????—–>?????
????*/
????public class Wang implements CallBack {
????/**
????* С??????????
????* ????—–>??????
????*/
????private Li li;
????/**
????* С???????????????С???????
????* @param li
????*/
????public Wang(Li li){
????this.li = li;
????}
????/**
????* С???????????????С???????
????* @param question ??С??????????1 + 1 = ?
????*/
????public void askQuestion(final String question){
????//??????????????????
????new Thread(new Runnable() {
????@Override
????public void run() {
????/**
????* С??????С???е????????????????????
????* ??????A?????B?????C
????*/
????li.executeMessage(Wang.this?? question);
????}
????}).start();
????//С????????????綽??????????????????????
????play();
????}
????public void play(){
????System.out.println(“?????????”);
????}
????/**
????* С????????????????????С????????ν??С??????????
????*/
????@Override
????public void solve(String result) {
????System.out.println(“С?????С???????—>” + result);
????}
????}
????С??
????public class Li {
????/**
????* ????B???в????CallBack callBack??f()—->??????
????* @param callBack
????* @param question С?????????
????*/
????public void executeMessage(CallBack callBack?? String question){
????System.out.println(“С?????????—>” + question);
????//???С?????????????????????
????for(int i=0; i<10000;i++){
????}
????/**
????* С????????????????????????2
????*/
????String result = “????2”;
????/**
????* ?????綽????С????????С???е????
????* ??????B??????????A?????D
????*/
????callBack.solve(result);
????}
????}
????д?????????
????public class Test {
????public static void main(String[] args) {
????Li li = new Li();
????Wang wang = new Wang(li);
????wang.askQuestion(“1 + 1 = ?”);
????}
????}