1 代码实例
1.1 A服务
声明A服务提供五个方法:
public class BizParamDTO {
private String field;
}
public interface AService {
public String a1(BizParamDTO param) throws Exception;
public String a2(BizParamDTO param) throws Exception;
public String a3(BizParamDTO param) throws Exception;
public String a4(BizParamDTO param) throws Exception;
public String a5(BizParamDTO param) throws Exception;
}
a1-a4休眠100毫秒,a5休眠600毫秒:
@Service
public class AServiceImpl implements AService {
@Override
public String a1(BizParamDTO param) throws Exception {
System.out.println(Thread.currentThread().getName() + ",a1 param=" + param);
TimeUnit.MILLISECONDS.sleep(100);
return param.getField();
}
@Override
public String a2(BizParamDTO param) throws Exception {
System.out.println(Thread.currentThread().getName() + ",a2 param=" + param);
TimeUnit.MILLISECONDS.sleep(100);
return param.getField();
}
@Override
public String a3(BizParamDTO param) throws Exception {
System.out.println(Thread.currentThread().getName() + ",a3 param=" + param);
TimeUnit.MILLISECONDS.sleep(100);
return param.getField();
}
@Override
public String a4(BizParamDTO param) throws Exception {
System.out.println(Thread.currentThread().getName() + ",a4 param=" + param);
TimeUnit.MILLISECONDS.sleep(100);
return param.getField();
}
@Override
public String a5(BizParamDTO param) throws Exception {
System.out.println(Thread.currentThread().getName() + ",a5 param=" + param);
TimeUnit.MILLISECONDS.sleep(600);
return param.getField();
}
}
1.2 B服务
B服务同步调用A服务五个方法:
public interface BService {
public void b(BizParamDTO param) throws Exception;
}
@Service
public class BServiceImpl implements BService {
@Resource
private AService aservice;
@Override
public void b(BizParamDTO param) throws Exception {
StopWatch stopWatch = new StopWatch();
stopWatch.start("taskB");
String r1 = aservice.a1(param);
String r2 = aservice.a2(param);
String r3 = aservice.a3(param);
String r4 = aservice.a4(param);
String r5 = aservice.a5(param);
List<String> result = Arrays.asList(r1, r2, r3, r4, r5);
stopWatch.stop();
System.out.println("b1-costTime=" + stopWatch.getTotalTimeMillis