这篇文章要做的就是优化,封装。把之前的代码尽量封装进类,并且不要硬编码。

在UserServiceimpl中的insertSysuser()函数之前是这么写的:

ResultInfo resultInfo=new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_RESULT_FAIL);
String message=ResourcesUtil.getValue("resources.messages", "213");
resultInfo.setMessage(message);
throw new ExceptionResultInfo(resultInfo);

觉得太麻烦。我们实现一个工具类ResultUtil ,

package yycg.base.process.result;

import java.util.List;

import yycg.util.ResourcesUtil;

/**
* 系统结果工具类
* @author mrt
*
*/
public class ResultUtil { /**
* 创建错误结果
* @param MESSAGE
* @return
*/
public static ResultInfo createFail(String fileName,int messageCode,Object[] objs){
String message=null;
if(objs == null){
message = ResourcesUtil.getValue(fileName, messageCode+"");
}else{
message = ResourcesUtil.getValue(fileName, messageCode+"",objs);
}
return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL,messageCode,message);
}
/**
* 创建敬告提示结果
*/
public static ResultInfo createWarning(String fileName,int messageCode,Object[] objs){
String message=null;
if(objs == null){
message = ResourcesUtil.getValue(fileName, messageCode+"");
}else{
message = ResourcesUtil.getValue(fileName, messageCode+"",objs);
}
return new ResultInfo(ResultInfo.TYPE_RESULT_WARN,messageCode,message);
} /**
* 创建成功提示结果
*/
public static ResultInfo createSuccess(String fileName,int messageCode,Object[] objs){ String message=null;
if(objs == null){
message = ResourcesUtil.getValue(fileName, messageCode+"");
}else{
message = ResourcesUtil.getValue(fileName, messageCode+"",objs);
}
return new ResultInfo(ResultInfo.TYPE_RESULT_SUCCESS,messageCode,message);
} /**
* 创建普通信息提示结果
*/
public static ResultInfo createInfo(String fileName,int messageCode,Object[] objs){ String message=null;
if(objs == null){
message = ResourcesUtil.getValue(fileName, messageCode+"");
}else{
message = ResourcesUtil.getValue(fileName, messageCode+"",objs);
}
return new ResultInfo(ResultInfo.TYPE_RESULT_INFO,messageCode,message);
} /**
* 抛出异常
* @param resultInfo
* @throws ExceptionResultInfo
*/
public static void throwExcepion(ResultInfo resultInfo) throws ExceptionResultInfo{
throw new ExceptionResultInfo(resultInfo);
}
public static void throwExcepion(ResultInfo resultInfo,List<ResultInfo> details) throws ExceptionResultInfo{
if(resultInfo != null){
resultInfo.setDetails(details);
}
throw new ExceptionResultInfo(resultInfo);
}
/**
* 创建提交结果信息
* @param resultInfo
* @return
*/
public static SubmitResultInfo createSubmitResult(ResultInfo resultInfo){
return new SubmitResultInfo(resultInfo);
}
/**
* 创建提交结果信息,包括明细信息
* @param resultInfo
* @param details
* @return
*/
public static SubmitResultInfo createSubmitResult(ResultInfo resultInfo,List<ResultInfo> details){
if(resultInfo != null){
resultInfo.setDetails(details);
}
return new SubmitResultInfo(resultInfo);
} public static void main(String[] args) {
// TODO Auto-generated method stub } }

有了这工具类之后,之前的代码可以这么写:

ResultInfo resultInfo=ResultUtil.createFail(Config.MESSAGE, 213, null);
new ResultUtil().throwExcepion(resultInfo);

具体着了说不清还是看文档比较好。

013医疗项目-模块一:加入工具类ResultUtil的更多相关文章

  1. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  2. 025医疗项目-模块二:药品目录的导入导出-HSSF导入类的封装

    上一篇文章提过,HSSF的用户模式会导致读取海量数据时很慢,所以我们采用的是事件驱动模式.这个模式类似于xml的sax解析.需要实现一个接口,HSSFListener接口. 原理:根据excel底层存 ...

  3. 005医疗项目-模块一:用户的查找:1.用户表查询的sql语句

    这是医疗项目的第一个模块:做一个用户的查询,可以根据用户的账号,用户的名称,单位的名称,用户的类型去查询.要求效果如下:

  4. 实用篇:说说我在JavaScript项目中使用的工具类

    在JavaScript的开发中,我们都会写一些工具类来帮我们简化一些业务操作的逻辑,一下就貼几个我在项目开发过程中常用的工具类.表达能力有限,各位看官还是看源码吧. 一.日期处理工具类. /** * ...

  5. 027医疗项目-模块二:药品目录的导入导出-导入功能的Action的编写

    前一篇文章我们写了Service层,这篇文章我们写一下Action层. 实现的功能: 1:我们先下载模板:然后按照模板里面的规则,插入数据.比如存在d盘. 2:然后浏览找到那个文件,上传上去. 然后把 ...

  6. 014医疗项目-模块一:删除用户的功能l

    删除用户的功能我们还是按照:Dao->Service->Action->页面调试这种顺序来写. Dao: 我们使用逆向工程生成的方法就好: SysuserMapper sysuser ...

  7. 012医疗项目-模块一:统一异常处理器的设计思路及其实现(涉及到了Springmvc的异常处理流程)

    我们上一篇文章是建立了一个自定义的异常类,来代替了原始的Exception类.在Serice层抛出异常,然后要在Action层捕获这个异常,这样的话在每个Action中都要有try{}catch{}代 ...

  8. 自己项目中PHP常用工具类大全分享

    <?php /** * 助手类 * @author www.shouce.ren * */ class Helper { /** * 判断当前服务器系统 * @return string */ ...

  9. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

随机推荐

  1. Win7 64位下sql server链接oracle的方法

    继上一次mysql同步sql server后,这一次需要将Oracle同步到sql server上来,方案相似,只是在sql server链接oracle的时候费了很多时间. 一.测试环境 本方案实现 ...

  2. [Microsoft Dynamics CRM 2016]Invalid Action – The selected action was not valid 错误的诱因及解决方法

    详细问题描述: 由于解决windows server 评估版过期\SQL server 评估版过期的问题后而导致的Invalid Action – The selected action was no ...

  3. Mac 以太网连接 报无效的服务器地址 BasicIPv6ValidationError

    Mac 以太网连接 报无效的服务器地址 BasicIPv6ValidationError 用Mac这么久,一直是用WiFi连接网络,没搞过以太网连接,我也是醉了 显然 Mac 不能像 Windows ...

  4. iOS--APP 登录界面图(xuer)

    ViewController.h #import "ViewController.h" @interface ViewController () @property(strong, ...

  5. Android源码分析之AsyncTask

    AsyncTask相信从事Android开发的同学都不陌生,基本都应该用到了,和以前一样我们还是先来看看此类的summary.AsyncTask 可以确保更合理.容易的使用UI线程.这个类是设计用来执 ...

  6. Mac平台下启动MySQL到完全终止MySQL----终端八步走

    1.选中Finder的情况下,快捷键进入搜索目录:/usr/local 然后进入mysql目录下: 2.右键 "从这里启动" 打开终端: 3.输入执行:./scripts/mysq ...

  7. j-query应用---鼠标悬停不同文字显示不同背景图片banner动画

    源代码部分:注意事项:样式表的引用的路径要一致. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  8. SQL 递归查询(根据指定的节点向上获取所有父节点,向下获取所有子节点)

    --------------------01.向上查找所有父节点-----------------WITH TEMP AS (SELECT * FROM CO_Department WHERE ID= ...

  9. 一个SharePoint定时器 (SPJobDefinition)

    需要写一个自定义的sharepoint timer job, 目的是要定时到Site Collection Images这个List里检查图片的过期日期,如果即将过期的话,需要发送email到相关的人 ...

  10. Tomcat报java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler

    最近在生产环境部署Tomcat的时候,在启动的时候,在控制台报"java.lang.ClassNotFoundException: 1catalina.org.apache.juli.Fil ...