方法响应完后调用其它方法?```````````顶者有分 首先调用方法1,等方法1响应给调用者后,再自动调用方法2.方法1public String test(){ return "";}方法2public void testAuto(){ }问题:不利用线程,还有没有其它办法实现?谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用完test()接着调用testAuto()不就完了? String str = null;str = test();if(null!=str){ testAuto();} 为什么有这样的需求呢?顺序往下写不就行了么?String s = test();testAuto(); 即使按照你所说,保证test()方法返回后再执行testAuto也不能达到你要的效果。因为网络传输速度等原因,客户端可能没收到或者处理这个响应。你应该在客户端做一个回调方法,等test处理结束以后,再发送一个处理testAuto的请求。 不给你怎么知道对方收到了?想TCP/IP里边的握手,握个不停了... 他调用我一接口,不管成功失败都会返回值给他(现在咱们就可以简单的理解为api接口吧)完后咱们再进行下一步操作 我差不多明白你的意思了。拿Servlet来做个比方:一个Servlet由容器负责创建和管理,它的生命周期经历下面一些方法:initservicedestroy你要做的事情是将test方法写到service方法里,然后将autoTest方法写到destroy方法里。 楼上的,谢谢你,差不多就是这个意思test 方法生命结束即开工后面的 试着使用 Proxy + InvocationHandler ? 只要观察test()方法执行完就可以了,好比spring aop 一样,但这里只是讲要把方法执行完,test()方法生命周期结束了下面就开始我们干活了,开始我是想用线程池做的,但如果有更好办法则更好 观察者模式可以实现,具体实现可以参考:java.util.Observable、java.util.Observer 谢谢你正在研究中……,没用过,但又不能google,只能发贴 有一种方式就是SPring中的增强,设置一个切点,切点在方法后,然后会自动调用你的第二个方法! 你是指spring aop 是吗前置后绕异常那些,是吧那些是同步的,他会等前置或后绕方法执行完,才会响应给别人 interface API { public void process();}class APIImplement implements API { private A a = new A(); private B b = new B(); public void process() { a.doFirstAction(); b.doNextAction(); }}让用户调用API接口的process的方法,至于A类与B类的方法则你自己可以控制 谢谢你用户调用这个方法,不就是在一个方法中调了两个吗?一样要执行完才返回和在test() 中调用 testAuto() 没区别所以达不到效果public void process() { a.doFirstAction(); b.doNextAction();} 这种需求用消息机制应该可以完成的,你们项目如果可以用JMS的话,不妨就试试吧 我们只提供一个soap接口给别人如果真要用线程,肯定是我们起只是讲,线程中处理内容太多,难免不是很安全 消息机制记得好象EJB中用,但没用过 一个请求从第三方过来,由我们给他一个接口,当这个请求执行完后,也就是说响应出去后,对方接到响应结果后 然后再调用我下面方法(这个方法不提供给第三方,即他不用调,自动执行) 就好比种菜中的看门狗一样,观察者模式 张三post请求调servlet中dopost方法 -- dopost方法跑完后响应给客户 -- 客户收到你响应后他再调你另一方法。是这样吗? 不是由我们提供一soap接口给第三方调用,当这个方法响应后,也就是执行完后再自行调用我们这边另一方法( 不由第三方调 ,暂不用thread),研究其它方案可实施否 不用线程能做吗?或者,可以考虑一下在响应完后调用一个方法,因为是客户端请求,应答不就是通过socket写出去,写完后调用你的方法。对于已有的封装,不知道能不能实现 呵呵是soap 接口,不是socket , 采用AOP思想。不一定要用Spring 。。 Spring只是实现了AOP的一种框架而已 aop 其实只是在进方法最开始,和出方法时最后,加上了自己想要的,其实也是在方法生命周期内我们并不能监控调用者,只能监控这个方法 aop 就是代理模式本人理解代理模式对这个功能是实现不了的 有学过Ibatis的进来帮下忙! 急关于压缩文件下载问题。 用户登录后看到的却是别人的信息 求org.xml.sax.SAXParseException: Content is not allowed in prolog.异常解决 j2ee帮助文档 用户会话失效后,为什么刷新后还是能进入页面啊, 在流中读写中文的问题 高分在线等 100 问各位一个ejb规范问题 如何查找数据库中字段类型CHAR(10),值为空的记录。用ejb_ql实现。 技术讨论:MQ的应用与产生背景 关于bean:write Spring注入到Struts的问题
str = test();
if(null!=str){
testAuto();
}
String s = test();
testAuto();
因为网络传输速度等原因,客户端可能没收到或者处理这个响应。
你应该在客户端做一个回调方法,等test处理结束以后,再发送一个处理testAuto的请求。
想TCP/IP里边的握手,握个不停了...
他调用我一接口,不管成功失败都会返回值给他(现在咱们就可以简单的理解为api接口吧)
完后咱们再进行下一步操作
拿Servlet来做个比方:
一个Servlet由容器负责创建和管理,它的生命周期经历下面一些方法:
init
service
destroy
你要做的事情是将test方法写到service方法里,然后将autoTest方法写到destroy方法里。
test 方法生命结束即开工后面的
只要观察test()方法执行完就可以了,好比spring aop 一样,但这里只是讲要把方法执行完,test()方法生命周期结束了
下面就开始我们干活了,开始我是想用线程池做的,但如果有更好办法则更好
谢谢你
正在研究中……,没用过,但又不能google,只能发贴
设置一个切点,切点在方法后,然后会自动调用你的第二个方法!
你是指spring aop 是吗前置
后绕
异常那些,是吧那些是同步的,他会等前置或后绕方法执行完,才会响应给别人
public void process();
}class APIImplement implements API { private A a = new A();
private B b = new B();
public void process() { a.doFirstAction();
b.doNextAction();
}
}让用户调用API接口的process的方法,至于A类与B类的方法则你自己可以控制
谢谢你
用户调用这个方法,不就是在一个方法中调了两个吗?一样要执行完才返回
和在test() 中调用 testAuto() 没区别
所以达不到效果
public void process() { a.doFirstAction();
b.doNextAction();
}
我们只提供一个soap接口给别人如果真要用线程,肯定是我们起
只是讲,线程中处理内容太多,难免不是很安全
消息机制记得好象EJB中用,但没用过
张三post请求调servlet中dopost方法 -- dopost方法跑完后响应给客户 -- 客户收到你响应后他再调你另一方法。是这样吗?
不是
由我们提供一soap接口给第三方调用,当这个方法响应后,也就是执行完后
再自行调用我们这边另一方法( 不由第三方调 ,暂不用thread),研究其它方案可实施否
呵呵
是soap 接口,不是socket ,
Spring只是实现了AOP的一种框架而已
aop 其实只是在进方法最开始,和出方法时最后,加上了自己想要的,其实也是在方法生命周期内
我们并不能监控调用者,只能监控这个方法