SpringBoot编写RESTful APi

目录

1.IDEA创建Spring Boot项目

2.配置文件 yml porm

1.配置prom文件

2.配置Yml文件配置数据库

3.编写后端业务逻辑 

          数据库

实体类pojo/domain

Dao

Service(接口 + 实现类)

Controller

4.编写前端协议

前端统一返回数据格式

​编辑

创建code实体类存放状态码

Controller实体类


1.IDEA创建Spring Boot项目


项目-->新建-->新模块-->选择Spring Boot项目

修改项目配置-->下一步


选择所需要的依赖项


点击创建-->可以删除多余文件

2.配置文件 yml porm


1.配置prom文件

(1). lombok是一个能自动插入到编辑器和构建工具的java库

常用注释:

(2). mybatis-spring-boot-starter SpringBoot整合Mybatis

(3) .druid数据源

(4) .MyBatis-Plus 的依赖


常用依赖网址:SpringBoot 常用依赖_org.joda的依赖-CSDN博客


2.配置Yml文件配置数据库

修改端口号


3.编写后端业务逻辑 

数据库


创建数据库

根据需求 创建实体对象之间的关系

根据对象的属性,创建对应的表

建立各个表之间的关联

实体类pojo/domain


根据所设计的数据库及数据表,创建实体Java类改实体类一般放在domain包下

@Data 通过lombok依赖简化Getter 和Setter 等方法

Dao


根据实体对象创建 xxxDao接口文件,一般放在dao目录下

dao层又称为mapper层

存放对数据的CRUD操作 对数据的持久化操作书写SQL语句

@Mapper 定义为Mapper层 在使用Mybatis持久层框架来操作数据库时,我们可以使用@Mapper注解来将Mapper接口类交给Sprinig进行管理

@Insert 增加 @Delete 删除

@Update 修改 @Select 查找

Service(接口 + 实现类)


spring Boot中的service层是业务逻辑层,负责处理业务需求,封装业务方法,调用dao层的数据操作。service层一般是一个接口和一个实现类,用@Service注解标注实现类。service层的接口可以在controller层中调用,实现数据的传递和处理

创建对应的xxxService接口,里面声明方法 在实现类中对接口声明的方法实现

@Transactional 注解是Spring 框架提供的声明式注解事务解决方案,我们在开发中使用事务保证方法对数据库操作的原子性,要么全部成功,要么全部失败

创建实现类 一般放在 Imp文件下 命名为接口名+Impl

@Service 定义为service层 注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。

@Override 方法重写 注解告诉你下面这个方法是从父类/接口继承过来的

@Autowired 自动装配 dao层 @Autowired可以标注在属性上、方法上和构造器上,来完成自动装配。默认是根据属性类型,spring自动将匹配到的属性值进行注入,然后就可以使用这个属性

示例:AddUser 接口

AddUser 实体类

Controller


响应用户请求controller层是用来接受前台数据和返回页面请求信息的

创建控制层(设置请求路径),xxxController

@RestController

     @Controller注解在一个类上添加@Controller注解,表明了这个类是一个控制器类。这里省略对Controller注解的说明了。@ResponseBody注解表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。

@Controller和@RestController的区别:

     @Controller:在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解

    @RestController:相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

@RequestMapping("/{访问路径}")

@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法

@Autowired 自动装配service层

使用UserService接口的方法

\1. 自动装配:通过@Autowired注解,Spring会自动在容器中查找匹配的Bean,并将其注入到Controller中。

\2. 依赖注入:通过@Autowired注解,Controller可以方便地获取其他Bean的实例,从而实现对其他Bean的依赖注入。

\3. 解耦:通过@Autowired注解,Controller与Service或Component等对象解耦,降低了代码的耦合度,提高了代码的可维护性和可测试性。

/* 1.客户端要求返回的数据 accept = application/json @GetMapping(value = "/{id}",headers = "accept = application/json") @GetMapping(value = "/{id}",produces = "application/json") accept = application/xml @GetMapping(value = "/{id}",headers = "accept = application/xml") @GetMapping(value = "/{id}",produces = "application/xml")

2.客户端发送请求时带上的参数 content-type = application/json @GetMapping(value = "/{id}",headers = "content-type = application/json")

@GetMapping(value = "/{id}",consumes = "application/json") content-type = application/xml @GetMapping(value = "/{id}",headers = "content-type = application/xml") @GetMapping(value = "/{id}",consumes = "application/xml") */

@PostMapping 传入参数时 + @RequestBody

@DeleteMapping("/{id}") 传入参数时+@PathVariable

@PutMapping("/{id}") 传入参数时 + @RequestBody

@GetMapping("/{name}") 传入参数时+@PathVariable

@GetMapping

根据需求的不同,可以自定义不同的返回结果和传入参数的类型

4.编写前端协议


前端统一返回数据格式

一般放在controller层里面,新建一个Result实体类 构造getter,setter方法 构造函数

Object data放数据 Integer code状态码 String msg 注释信息

创建code实体类存放状态码

新建一个Code实体类 代表成功与否  与前端规定

Controller实体类

  • 新增/删除/修改

  • 查询/查询全部

根据需求自定义,仅为快速入门

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值