后端代码合并逻辑梳理
后端代码结构分析
一、布局问题
通常代码项目分为三个模块: Conmmon, Service, start
- Common存放通用办法: 包括基类控制层BaseController,和通用控制层CommonController
- Service建议按照业务层来划分,文件目录正常小写,文件名称Class开头大写
- Start是项目启动的地方,application.properties文件位于资源中,其他地方都是存放Mapper,
其作用存放数据库账号密码,启动的端口号。
除了此种布局方式,该可以根据业务层分大模块,适用于规模更大的系统,如合并两个系统之后的布局方式。
二、依赖问题
独立于各模块之外有一个总Pom.xml文件,用于注册依赖,而各个小模块下有小Pom.xml文件,用于引入依赖,引入后端的依赖存放在External Library中,可在Maven仓库中查看。
三、数据运转流程
- 控制层
package 路径;
路径: 从各模块之下的java文件夹下开始的目录开始,到其上级文件夹;
import 实体类路径;
路径: 从各模块之下的java文件夹下开始的目录开始,到其上级文件夹;
@RestController
@Api("声明注解的地方")
@RequestMapping("前端找后端的路径")
public class 文件名Controller{
@Resource
文件名Service 小写字母开头的服务层;
@GetMapping("/方法名路径")
@ApiOperation(value = "方法名称注解")
public JsonResult 方法名(参数 =》) {
此处有JsonMessage和JsonResult
Map map = gzjlbService.gzjlbList(currentPage, pageSize, qsrq, jsrq, zkdm, gjz);
将数据放入某一个载体,比如说实体类或者是Map,传输数据
return JsonResult.ok().setData(map);
从后端查询的数据从后接受返回给前面
JsonMessage还有此种写法return new JsonMessage().success(dataPaging);
}
精简后的模板为
package 路径;
@RestController
@RequestMapping("前端找后端的路径")
public class XXXController{
@Resource
XXXService xxxService;
@GetMapping("/xx")
public JsonResult getYYYList(String page, String rows,
@RequestParam(name = "dwdm", required = false, defaultValue = "") String dwdm,
@RequestParam(name = "zkdm", required = false, defaultValue = "") String zkdm) {
DataPaging<CurrentDataEntity> dataPaging = currentDataService.getPotList(dwdm, zkdm, page, rows);
return new JsonMessage().success(dataPaging);
}
- 服务层
package 路径;
路径: 从各模块之下的java文件夹下开始的目录开始,到其上级文件夹;
@Service
public class 文件名Service {
@Resource
private MybatisRepository mybatisRepository;
private static final String NAMESPACE = "文件名Mapper.";
public DataPaging<实体类> 方法名(String edwdm, String sdwdm, String page, String rows) {
//Map params = new HashMap(); 另一种写法
//从前端往后端传输的数据
Map<String, String> params = new HashMap<>();
params.put("dwdm", edwdm);
params.put("zkdm", sdwdm);
//分页功能start
int _page = 1;
int _row = Integer.MAX_VALUE;
if (!StringUtils.isEmpty(page)) {
_page = Integer.parseInt(page);
}
if (!StringUtils.isEmpty(rows)) {
_row = Integer.parseInt(rows);
}
PageRequest pageRequest = new PageRequest(_page, _row, params);
//分页功能end
return mybatisRepository.selectPaging(NAMESPACE + "selectForPotList", pageRequest);
//接受来自Dao层的数据
}
- Dao层
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
//Dao层数据文件格式
<mapper namespace="文件的路径或名称">
Service层是通过namespace来找到Dao层文件的
<select id="方法名"
parameterType="java.util.HashMap" //数据类型
resultType="实体类路径"> //数据如果是通过实体类就填写实体类路径,而通过Map的话就写Map数据
数据库语句
</select>