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

在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. 高清HDMI编码器|上海视涛科技

    HDMI编码器(E300)简介 HDMI编码器(E300)是上海视涛科技出品的高性能HDMI+VGA编码产品.该HDMI+VGA编码器是上海视涛科技完全自主研发,并适用于VGA.DVI.HDMI等信号 ...

  2. Atitit.视频文件加密的方法大的总结 java c# php

    Atitit.视频文件加密的方法大的总结 java c# php 1. 加密的算法  aes  3des  des xor等.1 2. 性能1 3. 解密1 4. 播放器的事件扩展1 5. 自定义格式 ...

  3. R Graphics Cookbook 第3章 – Bar Graphs

    3.1 基本条形图 library(ggplot2) library(gcookbook) pg_mean   #这是用到的数据   group weight 1  ctrl  5.032 2  tr ...

  4. Android屏蔽HOME键

    public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; @Override protected void onCreate(Bund ...

  5. 【原】结构体包含CString类型成员变量出错的原理

    问题如下:我定义了如下的一个结构体: typedef struct{   CString csText;}MyStruct; 并有如下的程序段1:MyStruct * p=NULL;p=(MyStru ...

  6. IOS开发之网络编程--文件压缩和解压缩

    前言: QQ表情包就用到了解压缩,从网络下载的那么多表情文件格式并不是一个一个图片文件,而是多个图片压缩而成的表情压缩包.下面介绍的是iOS开发中会用到的压缩和解压缩的第三方框架的使用. 注意: 这个 ...

  7. java集合 之 Collection和Iterator接口

    Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. bo ...

  8. 【linux】关于分析系统问题的前几分钟

    为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么?你可以在几分钟内就对系统资源的使用情况和进程的运行状况有大体上的了解.无非是先查看错误信息和饱和指标,再看下资源的使用量 ...

  9. saltstack通过salt.client执行命令(转)

    利用saltstack的salt.client模块可以在python的命令行下或者python脚本里执行相应的salt命令 master端想要执行类似 salt '*' cmd.run 'uptime ...

  10. 50个jquery代码片段(转)

    本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...