您的位置:首页 > 编程语言 > Java开发

Java设计一个可追踪是否成功执行的方法

2016-06-08 15:52 309 查看
没写过web应用的人永远不知道只能看log日志debug的痛苦

因此,设计一个可追踪是否成功执行的方法,并在项目中广泛使用,对web应用来说很重要

使用:

public class Test{
public static void main(String[] args){
Abc abc = new Abc();
//Java传引用,使用NameValeDto对象保存方法中业务逻辑处理的结果
NameValeDto inputDto = new NameValeDto("A","12");
if(!abc.mainService1(inputDto )){
logger.error("mainService1 error");
return;
}
if(!abc.mainService2(inputDto )){
logger.error("mainService2 error");
return;
}
if(!abc.mainService3(inputDto )){
logger.error("mainService3 error");
return;
}
}
}


定义:

//Java传引用,使用NameValeDto对象保存方法中业务逻辑处理的结果
public class NameValeDto {
public String name;
public String value;
public NameValeDto(String name, String value){
this.name = name;
this.value = value;
}
}


public class Abc {
boolean mainService1(NameValeDto nameValeDto){
//Java传引用,使用NameValeDto对象保存方法中业务逻辑处理的结果
if(nameValeDto.name==null||nameValeDto.value==null){
logger.error("no 参数 input");
return false;
}
try{
//业务逻辑
return true;
} catch(Exception e){
logger.error("mainService"+e.getMessage());
return false;
}finally{
//close resource
}
}

boolean mainService2(NameValeDto nameValeDto){
//Java传引用,使用NameValeDto对象保存方法中业务逻辑处理的结果
if(nameValeDto.name==null||nameValeDto.value==null){
logger.error("no 参数 input");
return false;
}
try{
//业务逻辑
return true;
} catch(Exception e){
logger.error("mainService"+e.getMessage());
return false;
}finally{
//close resource
}
}

boolean mainService3(NameValeDto nameValeDto){
//Java传引用,使用NameValeDto对象保存方法中业务逻辑处理的结果
if(nameValeDto.name==null||nameValeDto.value==null){
logger.error("no 参数 input");
return false;
}
try{
//业务逻辑
return true;
} catch(Exception e){
logger.error("mainService"+e.getMessage());
return false;
}finally{
//close resource
}
}
}


Java中没有一种技术,可以约束一个方法的格式,换句话说,Java没法定义一个方法的模板,做到只需要替换参数就可以应用到不同的业务。

只能依靠所谓的“代码规范”。

鄙人认为这是不对的,比如本文的3个方法,有很多冗余的代码。假如Java有这样的机制定义一个模板如下:

@BooleanReturn //约束了返回值为Boolean,并对异常自动logger并return false
mainService3(/*参数列表*/){
//业务逻辑
}


开发不仅变得简单而且规范。遗憾的是,Java注解做不到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java