当前位置: 首页 > news >正文

Springboot和postman的使用

文章目录

  • 1.入门
  • 2.创建项目
  • 3.HTTP
  • 4.请求响应
  • 5.简单参数的接收
  • 6.实体参数的接收
  • 7.数组集合参数
  • 8.日期参数
  • 9.JSON参数
  • 10.路径参数
  • 11.响应
  • 12.分层解耦

1.入门

  • 在这里插入图片描述
    • Spring Boot : 快速方便地构建出一个Spring程序
    • Spring Framework :Spring框架,最底层最基础的框架
    • Spring Data : 封装了一系列访问数据库的技术
    • Spring Cloud : 用来构建微服务项目
    • Spring Security : 安全框架

2.创建项目

  • 1.在这里插入图片描述
  • 2在这里插入图片描述在这里插入图片描述
  • 3.创建好后,有些文件可以删除
    在这里插入图片描述

3.HTTP

  • http协议概述
    • 在这里插入图片描述
    • 在这里插入图片描述
    • 在这里插入图片描述
      在这里插入图片描述在这里插入图片描述
  • 响应协议
    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • web服务器在这里插入图片描述

    • 在这里插入图片描述

      • Tomcat介绍

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 启动在这里插入图片描述

      • 打开tomcat出现的问题:在这里插入图片描述

      • 在这里插入图片描述在这里插入图片描述

      • 双击startup.bat闪退的解决方法

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述在这里插入图片描述

4.请求响应

在这里插入图片描述
在这里插入图片描述

  • 工具:postman
    在这里插入图片描述
  • 安装步骤:可按照该步骤进行
    • 创建项目:在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 更改别名,文件夹设置
    在这里插入图片描述

5.简单参数的接收

在这里插入图片描述

  • 简单参数
    在这里插入图片描述
  • springboot方式
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
package com.example.springboot_web_start.controller;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {//springmvc方式
//    @RequestMapping("simpleParam")
//    public String simpleParam(HttpServletRequest request){
//        String name = request.getParameter("name");
//        String ageStr = request.getParameter("name");
//        int age = Integer.parseInt(ageStr);
//        System.out.println(name + " " + age);
//        return "success";
//    }//#################################################//springboot方式
//    @RequestMapping("simpleParam")
//    public String simpleParam(String name, Integer age){
//
//        System.out.println(name + " " + age);
//        return "success";
//    }//#################################################//当方法形参名称和请求参数名称不匹配的时候,使用@RequestParam注解@RequestMapping("simpleParam")public String simpleParam(@RequestParam(name="name") String username, Integer age){System.out.println(username + " " + age);return "success";}
}

6.实体参数的接收

  • 规则:请求参数名和形参对象属性名相同
  • 简单实体参数在这里插入图片描述
package com.example.springboot_web_start.pojo;public class User {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}
///////////////////////////////////////////////////////////////////////////////////////////
package com.example.springboot_web_start.controller;import com.example.springboot_web_start.pojo.User;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {//2.实体参数@RequestMapping("simplePojo")public String simplePojo(User user){System.out.println(user);return "success";}
}
  • 复杂实体参数
package com.example.springboot_web_start.pojo;public class Address {private String address;private String city;public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Address{" +"address='" + address + '\'' +", city='" + city + '\'' +'}';}
}
//////////////////////////////////////////////////////////////////////////////////////////package com.example.springboot_web_start.pojo;public class User {private String name;private int age;private Address address;public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address=" + address +'}';}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package com.example.springboot_web_start.controller;import com.example.springboot_web_start.pojo.User;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {//复杂实体参数@RequestMapping("complexPojo")public String complexPojo(User user){System.out.println(user);return "success";}
}

7.数组集合参数

  • 数组:请求参数名和形参中的数组变量名相同,可以直接使用数组封装
  • 请求参数名和形参中集合变量名相同,通过@RequestParam绑定参数关系
    在这里插入图片描述在这里插入图片描述
  //3.数组参数@RequestMapping("arrayParam")public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return "success";}//集合参数@RequestMapping("listParam")public String listParam(@RequestParam(name="hobby") List<String> hobby){System.out.println(hobby);return "success";}

8.日期参数

在这里插入图片描述

 //4.日期时间参数@RequestMapping("dateParam")//指定请求路径public String dateParam(@DateTimeFormat(pattern ="yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "success";}

9.JSON参数

在这里插入图片描述

//JSON参数@RequestMapping("jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "success";}

10.路径参数

  • 一个参数在这里插入图片描述
  • 多个参数在这里插入图片描述
//6.路径参数@RequestMapping("pathVariable/{id}")//指定请求路径public String pathVariable(@PathVariable Integer id){System.out.println(id);return "success";}//多个参数@RequestMapping("pathVariable/{id}/{name}")//指定请求路径public String pathVariable(@PathVariable Integer id, @PathVariable String name){System.out.println(id + " " + name);return "success";}
  • 总结
    在这里插入图片描述

11.响应

  • @ResponseBody
    • 位置:Controller类上/方法上
    • 作用:将方法返回值直接响应,若返回值类型是 实体对象/集合 转JSON格式在这里插入图片描述
  • 响应回去的数据没有规范:不方便管理
package com.example.springboot_web_start.controller;import com.example.springboot_web_start.pojo.Address;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RestController
public class ResponseController {//返回字符串@RequestMapping("/hello")public String hello(){System.out.println("hell");return "hello";}//返回对象@RequestMapping("/getAddr")public Address getAddr(){Address address = new Address();address.setCity("北京");address.setAddress("长安街");return address;}//返回list集合@RequestMapping("/getAddrList")public List<Address> getAddrList(){List<Address> addressList = new ArrayList<>();Address address1 = new Address();address1.setCity("北京");address1.setAddress("长安街");addressList.add(address1);Address address2 = new Address();address2.setCity("上海");address2.setAddress("南京路");addressList.add(address2);return addressList;}
}
  • 方法:同一响应结果
  • Result(code ,msg ,data)在这里插入图片描述
package com.example.springboot_web_start.pojo;
/*
统一响应结果封装类
*/
public class Result {private Integer code;//1 成功 0 失败private String msg;//提示信息private Object data;//返回数据public Result() {}public Result(Integer code, String msg, Object data) {this.code = code;this.msg = msg;this.data = data;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public static Result success(Object data){return new Result(1,"操作成功",data);}public static Result error(Object data){return new Result(0,"操作失败",null);}public static Result error(String msg,Object data){return new Result(0,msg,null);}@Overridepublic String toString() {return "Result{" +"code=" + code +", msg='" + msg + '\'' +", data=" + data +'}';}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//返回字符串
@RequestMapping("/hello")
public Result hello(){System.out.println("hell");
//    return new Result(1,"success","hello");return Result.success("hello");
}//返回对象@RequestMapping("/getAddr")public Result getAddr(){Address address = new Address();address.setCity("北京");address.setAddress("长安街");return Result.success(address);}//返回list集合@RequestMapping("/getAddrList")public Result getAddrList(){List<Address> addressList = new ArrayList<>();Address address1 = new Address();address1.setCity("北京");address1.setAddress("长安街");addressList.add(address1);Address address2 = new Address();address2.setCity("上海");address2.setAddress("南京路");addressList.add(address2);return Result.success(addressList);}
  • 统一响应案例
  • 在这里插入图片描述
  • 在这里插入图片描述

12.分层解耦

在这里插入图片描述在这里插入图片描述

  • 分层后代码
    在这里插入图片描述
  • 内聚:软件中各个功能模块内部的功能联系
  • 耦合:衡量软件中各个层/模块之间的依赖,关联的程度
  • 软件设计原则:高内聚低耦合
    • 高内聚:模块内部的功能联系越紧密越好(在一个模块中只存放与该模块有关的相关处理)
    • 低耦合: 降低层与层之间/模块与模块之间的依赖关联
      在这里插入图片描述
  • IOC 与 DI入门在这里插入图片描述
  • 解耦例子
    • @Component(控制反转) //将当前类交给IOC容器管理,成为IOC容器中的 bean
    • @Autowired(依赖注入) //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量
      在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • IOC详解
    • 指将对象的控制权交给IOC容器,由IOC容器来创建及管理这些对象,ioc中的对象也称为bean对象,@component可以用来声明一个bean对象
    • 在这里插入图片描述
    • @Controller,@Service,@Repository 分别对应Controller,Service,Dao层的注解;@Component用于不属于这三个在内的
    • 在这里插入图片描述
  • @ComponentScan //默认扫描当前包及其子包
  • DI详解
    • 在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
  • 在这里插入图片描述
http://www.lryc.cn/news/596560.html

相关文章:

  • XSS内容分享
  • 智能泵房监控系统:物联网应用与智能管理解决方案
  • Qt中QObject类的核心作用与使用
  • Qt 事件处理机制深入剖析
  • List<UserInfo> list = new ArrayList<>();为什么要这样创建数组?
  • 如何用keepAlive实现标签页缓存
  • 从 COLMAP 到 3D Gaussian Splatting
  • 滑动窗口经典问题整理
  • langchain4j之RAG 检索增强生成
  • Linux操作系统之线程(六):线程互斥
  • TCP day39
  • 质量即服务:从测试策略到平台运营的全链路作战手册
  • 重生学AI第十九集:VGG16的使用以及模型的保存与加载
  • 【期末考试复习】计算机组成原理 - 直接补码阵列乘法器
  • 【接口自动化】pytest的基本使用
  • CSS+JavaScript 禁用浏览器复制功能的几种方法
  • web登录页面
  • 黑马点评练习题-给店铺类型查询业务添加缓存(String和List实现)
  • kafka4.0集群部署
  • 数据结构01:链表
  • docker compose 安装使用笔记
  • Docker实战:使用Docker部署TeamMapper思维导图工具
  • 【实时Linux实战系列】基于实时Linux的传感器网络设计
  • Spring Boot音乐服务器项目-登录模块
  • 【论文阅读】Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline
  • 基于VU13P的百G光纤FMC高性能处理板
  • Rust实战:决策树与随机森林实现
  • 板凳-------Mysql cookbook学习 (十二--------5)
  • 【RAG优化】PDF复杂表格解析问题分析
  • 阶段1--Linux中的文件服务器(FTP、NAS、SSH)