工程结构JAVA后台开发工程结构

JAVA后台开发工程结构


目录

1. 工程结构

包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式

com.公司.业务名
	common
		config			配置类
		enums			枚举
		constant		常量
		base			抽象顶层类
		util			工具
		interceptor		拦截器
		filter			过滤器
		listener		监听器
		schedule		定时任务
	模块名
		controller
			web
			api
		service
			impl
		dao
		do				与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
		dto				数据传输对象, Service 或 Manager 向外传输的对象。
		vo				显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
		bo				业务对象。由 Service 层输出的封装业务逻辑的对象。
		Query			数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类来传输。

2. 数据查询对象

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 
 *
 * @author fzc
 * @version v1
 * @description 请在此处填写该类的描述
 * @module
 * @date 2019/4/24
 */
public class Query implements Serializable {

    private Map<String, Object> params = new HashMap<>();
    private int offset;
    private int limit;

    public Map<String, Object> getParams() {
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public int getOffset() {
        return offset;
    }

    public void setOffset(int offset) {
        this.offset = offset;
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        this.limit = limit;
    }

    @Override
    public String toString() {
        return "Query{" +
                "params=" + params +
                ", offset=" + offset +
                ", limit=" + limit +
                "} " + super.toString();
    }
}

3. json响应数据格式

import java.io.Serializable;

/**
 * 
 *
 * <p>
 * {"code":0, "msg":"", "data":""} -->无返回数据
 * {"code":0, "msg":"", "data":{...}} -->单条记录
 * {"code":0, "msg":"", "data":[{...}, {...}, {...}, ...]} -->多条记录
 * </p>
 *
 * @author fzc
 * @version v1
 * @description 请在此处填写该类的描述
 * @module
 * @date 2019/4/24
 */
public class ResultInfo implements Serializable {

    private Integer code;
    private String msg = "";//设置默认值,防止不同json框架序列化导致结果不一致
    private Object data = "";

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public static ResultInfo success() {
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.setCode(0);
        return resultInfo;
    }

    public static ResultInfo success(Object data) {
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.setCode(0);
        resultInfo.setData(data);
        return resultInfo;
    }

    public static ResultInfo fail(String msg) {
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.setCode(9999);//自定义信息
        resultInfo.setMsg(msg);
        return resultInfo;
    }

}

4. 工具集

参考:[hutool](http://hutool.mydoc.io/)
  • 文件操作工具
  • json序列化工具
  • http工具
  • spring工具
  • id生成工具
  • reids操作工具
  • 加密工具
posted @ 2019-04-24 16:39  扫地僧灬  阅读(1030)  评论(0编辑  收藏  举报