WEB项目中方法状态码定义-枚举类型enum使用

   为什么使用枚举?

  • 在web项目中离不开controller,controller归根结底还是增删改查,通常这些操作完成后会给前端传操作状态信息。
  • 在很多时候我们定义一些状态量都是使用0或者1,-1这样在数据库中定义,这样的数据存放在数据库的相应字段中方便数据读取,但是只存储数字,如果定义的表很多,对应的字段也很多,设计的状态就非常多,编码很容易分辨不清楚,一方面去数据库中查看相应字段的注释非常费时间,而且容易产生差错
  • 后台定义统一的状态码信息,使程序可读性提高以及减少不同开发人员的误解

 

简单看一下我最近项目使用的枚举类:

public enum PageCodeEnum {
    ADD_SUCCESS(1000,"新增成功!"),
    ADD_FAIL(1001,"新增失败!"),
    MODIFY_SUCCESS(1100,"修改成功!"),
    MODIFY_FAIL(1101,"修改失败!"),
    REMOVE_SUCCESS(1200,"删除成功!"),
    REMOVE_FAIL(1201,"删除失败!"),
    LOGIN_FAIL(1301,"登录失败!用户名密码错误!"),
    SESSION_TIMEOUT(1302,"session超时,请重新登录!"),
    NO_AUTH(1303,"没有权限访问请求资源,请切换账户后重试!"),
    USERNAME_EXISTS(1401,"用户名已存在!"),
    GROUPNAME_EXISTS(1402,"用户组名已存在!"),
    SUB_MENU_EXISTS(1403,"菜单下还存在子菜单!"),
    ASSIGN_SUCCESS(1500,"分配成功!"),
    ASSIGN_FAIL(1501,"分配失败!"),
    ORDER_SUCCESS(1600,"排序成功!"),
    ORDER_FAIL(1601,"排序失败!"),;
   
    private Integer code;
    private String msg;
    
    
    // 构造方法,注意:构造方法不能为public,因为enum并不可以被实例化
    private PageCodeEnum(Integer code,String msg) {
	this.code = code;
	this.msg = msg;
    }
      
    //不需要定义set方法,防止修改
    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

那么每当后台执行一个方法,就向下图一样返回状态码或信息,这是非常实用的。另外我们在编程的时候,只需要更多的去思考业务的逻辑可行性,比如查询操作的商品,就直接查询ADD_SUCCESS所对应的code,而我们则不需要关心code是什么。这个意思到这里应该就很明白了吧。

如图:返回的信息一目了然


	/**
	 * 新增
	 */
	@RequestMapping("/add")
	public String add(AdDto adDto, Model model) {
		if (adService.add(adDto)) {
			model.addAttribute("msg", PageCodeEnum.ADD_SUCCESS.getMsg());
		} else {
			model.addAttribute("msg" ,PageCodeEnum.ADD_FAIL.getMsg());
		}
		return "/content/adAdd";
	}

 

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值