工程结构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操作工具
- 加密工具
签名