黑马-“tlias智能学习辅助系统” 项目 复盘

学习java将近一年了,看javaweb过程中首次接触完整的前后端结合项目,看完一遍黑马的课,还有点迷糊,感觉自己什么都没学会,下面对这个项目进行一下完整的梳理和复盘。

一. 准备工作

准备工作从需求环境搭建入手

1.需求说明

1.1 部门管理

  

部门管理功能开发主要包括:

  • 查询部门列表

  • 删除部门

  • 新增部门

  • 修改部门

1.2 员工管理

员工管理功能开发包括:

  • 查询员工列表(分页、条件)

  • 删除员工

  • 新增员工

  • 修改员工

2.环境搭建

Lombok :是一个 Java 库,它通过注解的方式简化了 Java 代码的编写。它能够自动生成一些常见的代码,如构造函数、getters/setters、toString 方法、equals/hashCode 方法等,从而减少模板代码的编写。

MyBatis: 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,是程序员可以更轻松地将 JDBC 代码转换成 Java 代码。

步骤:

  1. 准备数据库表(dept、emp)

  2. 创建springboot工程,引入对应的起步依赖(web、mybatis、mysql驱动、lombok)(版本选择2.7.5版本,可以创建完毕之后,在pom.xml文件中更改版本号 )

  3. 配置文件application.properties中引入mybatis的配置信息,准备对应的实体类

  4. 准备对应的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、toStringequalshashCode 方法。使用 @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. 删除部门

  2. 新增部门

  3. 更新部门

查询部门为例,整体梳理大致的实现过程

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进行前后端联调

以上仅为大致的过程,供大家参考,员工管理部分大家自己思考吧!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值