【javaWeb &第九篇】功能接口开发流程以及常用注解

本文介绍了SpringBoot项目的环境配置,包括数据库表的准备、依赖管理,以及开发规范如RESTful风格接口和统一的响应结果。还详细阐述了开发流程,从需求分析到前后端联调,涉及注解的使用、参数默认值、分页查询插件PageHelper的使用和日期格式处理。
摘要由CSDN通过智能技术生成

准备-环境搭建

  • 准备数据库表(dept,emp)
  • 准备后端SpringBoot环境
    需要依赖:
  1. Web起步依赖,数据库驱动依赖,Mybatis依赖,lombok依赖
  2. 配置文件application.properties中引入Mybatis配置信息,准备对应的实体类
  3. 后端采用三层架构的方式进行开(Controller,service,mapper)为了方便开发采用面向接口的方式进行开发
  4. 准备对应的Mapper,Service(接口,实现类),Controller基础结构

开发规范

前后端分离,需要按照接口文档的规范进行

  • REST
    表述性状态转换,它是一种软件架构风格,定义URL的风格
    REST
    注意:REST是风格,是约定方式,约定不是规定,可以打破
    描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源,如:users,emps,books

  • 统一的响应结果

创建Result类创建统一的响应数据

开发流程

完成一个功能接口的开发流程:

  1. 查看页面原型,明确需求
  2. 阅读接口文档
  3. 分析整理思路
  4. 进行接口开发
  5. 进行接口测试
  6. 前后端联调

首先要想开发一个功能接口,首先应该先通过查看页面原型,明确该功能接口的需求,有一个大致的思路,然后阅读对应的开发文档,明确其大致的实现内容,整理一个清晰的思路,然后进行接口开发,开发好之后进行接口测试,最后前后端联调确定其功能完善,一个功能接口就开发好了

  • 前后端联调
    将前端工程后端工程启动进行联合测试
    在这里插入图片描述

注解补充

如何限定请求的格式:
注解 @RequestMapping 中的属性method确定请求格式

    @RequestMapping(value = "/depts",method = RequestMethod.GET)

这种格式太过于繁琐,再spring中,@RequestMapping提供了衍生注解 @GetMapping,同样的其他格式的参数都有相应的衍生注解

log.info("已删除数据:{}",id);

在此处一个大括号就是一个参数占位符,后边的id会自动显示再{}的位置

开发中地址重复问题:
我们可以通过将相同的请求路径抽取到类的上方来解决这些问题
更改之后如下所示:
在这里插入图片描述
这样一个完整的请求地址就是,类上的 @RequestMapping
的value属性+方法上的 @RequestMapping的value属性

向参数传入默认值:
注意:当GET请求中没有传参,如果我们要求没有参数默认设置为1,就需要注解 @RequestParam

@Slf4j
@RestController
public class EmpController {
    @Autowired
    private EmpService empService;
    @GetMapping("/emps")
    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10")Integer pageSize){
        log.info("分页查询,参数:{},{}",page,pageSize);
        pageBean pagebean=empService.page(page,pageSize);
        return Result.success(pagebean);
    }
}
  • 分页查询插件PageHelper

通过分页插件可以大大简化在分页操作中出现的繁琐问题,提高代码开发效率
在这里插入图片描述

插件依赖:


		<!--pagehelper分页插件的依赖-->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.4.2</version>
		</dependency>

在服务层将对应的分页语句进行修改


    @Override
    public pageBean page(Integer page, Integer pageSize) {
        //1,设置分页参数
        PageHelper.startPage(page,pageSize);
        //2.进行正常的查询操作
        List<Emp> list = empMapper.list();
        Page<Emp> page1=(Page<Emp>) list;
        //3.封装pageBean对象
        pageBean pagebean=new pageBean(page1.getTotal(),page1.getResult());
        return pagebean;
    }

日期格式注解:

    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10")Integer pageSize,
                       String name, Short gender,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值