学习java将近一年了,看javaweb过程中首次接触完整的前后端结合项目,看完一遍黑马的课,还有点迷糊,感觉自己什么都没学会,下面对这个项目进行一下完整的梳理和复盘。
一. 准备工作
准备工作从需求和环境搭建入手
1.需求说明
1.1 部门管理
部门管理功能开发主要包括:
-
查询部门列表
-
删除部门
-
新增部门
-
修改部门
1.2 员工管理
员工管理功能开发包括:
-
查询员工列表(分页、条件)
-
删除员工
-
新增员工
-
修改员工
2.环境搭建
Lombok :是一个 Java 库,它通过注解的方式简化了 Java 代码的编写。它能够自动生成一些常见的代码,如构造函数、getters/setters、toString 方法、equals/hashCode 方法等,从而减少模板代码的编写。
MyBatis: 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,是程序员可以更轻松地将 JDBC 代码转换成 Java 代码。
步骤:
-
准备数据库表(dept、emp)
-
创建springboot工程,引入对应的起步依赖(web、mybatis、mysql驱动、lombok)(版本选择2.7.5版本,可以创建完毕之后,在pom.xml文件中更改版本号 )
-
配置文件application.properties中引入mybatis的配置信息,准备对应的实体类
-
准备对应的Mapper、Service(接口、实现类)、Controller基础结构
创建Springboot工程
创建项目的目录结构
实体类的准备
/*部门类*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
private Integer id;
private String name;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
/*员工类*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
private Integer id;
private String username;
private String password;
private String name;
private Short gender;
private String image;
private Short job;
private LocalDate entrydate;
private Integer deptId;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
@Data
是 Lombok 库提供的一个非常方便的注解,它是一个组合注解,用于自动生成标准的 getters、setters、toString
、equals
和 hashCode
方法。使用 @Data
注解可以极大地简化 Java 对象的编写,特别是对于那些只包含数据属性的简单 POJO(Plain Old Java Object)类。
@NoArgsConstructor
和 @AllArgsConstructor
是 Lombok 库提供的注解,它们用于自动生成 Java 类的构造函数。
准备对应的Mapper、Service(接口、实现类)、Controller基础结构
数据访问层
-
DeptMapper
package com.itheima.mapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeptMapper {
}
-
EmpMapper
业务层
-
DeptService
package com.itheima.service;
//部门业务规则
public interface DeptService {
}
-
DeptServiceImpl
package com.itheima.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
//部门业务实现类
@Slf4j
@Service
public class DeptServiceImpl implements DeptService {
}
-
EmpService
-
EmpServiceImpl
@Slf4j
是 Lombok 库提供的一个注解,它用于自动生成一个名为 log
的日志对象。这个注解通常与日志框架(如 Log4j、SLF4J、java.util.logging)一起使用,可以极大地简化日志记录的代码。
控制层
-
DeptController
package com.itheima.controller;
import org.springframework.web.bind.annotation.RestController;
//部门管理控制器
@RestController
public class DeptController {
}
项目工程结构
3. 开发规范
统一响应结果
前后端工程在进行交互时,使用统一响应结果 Result。
开发流程
-
EmpController
-
功能接口开发
-
就是开发后台的业务功能,一个业务功能,我们称为一个接口
-
-
功能接口测试
-
功能开发完毕后,先通过Postman进行功能接口测试,测试通过后,再和前端进行联调测试
-
二. 部门管理
开发的部门管理功能包含:
1.查询部门
-
删除部门
-
新增部门
-
更新部门
以查询部门为例,整体梳理大致的实现过程
1.1 思路分析
1.2 功能开发
通过查看接口文档:部门列表查询
请求路径:/depts
请求方式:GET
请求参数:无
响应数据:json格式
DeptController
@Slf4j
@RestController
public class DeptController {
@Autowired
private DeptService deptService;
//@RequestMapping(value = "/depts" , method = RequestMethod.GET)
@GetMapping("/depts")
public Result list(){
log.info("查询所有部门数据");
List<Dept> deptList = deptService.list();
return Result.success(deptList);
}
}
DeptService(业务接口)
public interface DeptService {
/**
* 查询所有的部门数据
* @return 存储Dept对象的集合
*/
List<Dept> list();
}
DeptServiceImpl(业务实现类)
@Slf4j
@Service
public class DeptServiceImpl implements DeptService {
@Autowired
private DeptMapper deptMapper;
@Override
public List<Dept> list() {
List<Dept> deptList = deptMapper.list();
return deptList;
}
}
DeptMapper
@Mapper
public interface DeptMapper {
//查询所有部门数据
@Select("select id, name, create_time, update_time from dept")
List<Dept> list();
}
1.3 功能测试
功能开发完成后,我们就可以启动项目,然后打开postman,发起GET请求,访问 :http://localhost:8080/depts
注意:如果电脑上postman启动不了,也可以下载Apipost
完成了查询部门的功能,我们也通过postman工具测试通过了,下面我们再基于前后端分离的方式进行接口联调。
最后利用nginx进行前后端联调
以上仅为大致的过程,供大家参考,员工管理部分大家自己思考吧!!!