黑马 springweb学习

spring web 学习

黑马springweb资料链接: link

SpringBoot中文文档: link
Maven仓库地址: link
对AI感兴趣的: 百度AI学习

spring简单介绍

  • Spring Boot
    基于springboot可以快速构建出一个spring程序。

  • Spring Framework
    spring最为底层,最为基础的框架

  • Spring Data
    封装了一系列访问数据库的技术

  • Spring Cloud
    用来构建微服务项目

  • Sping Security
    安全框架

Spring官网: link

SpringBootWeb快速入门

使用 SpringBoot 开发一个web应用,浏览器发起请求 /hello后,给浏览器返回字符串 "Hello World ~
使用 SpringBoot 开发一个web应用,浏览器发起请求 /hello后,给浏览器返回字符串 "Hello World ~"
在Spring中@RestController的作用等同于@Controller + @ResponseBody
下面内容参考:链接: 博客园

@Controller

  • 1.在一个类上添加@Controller注解,表明了这个类是一个控制器类。但想要让这个类成为一个处理请求的处理器光有@Controller注解是不够的,他还需要进一步修炼才能成为一个处理器。
  • 2.将@Controller注解的类注入Spring容器中,只是该类成为处理器的第一步,想要修炼大成,还需要在该类中添加注解@RequestMapping。
  • @RequestMapping注解是用来映射请求的,即指明处理器可以处理哪些URL请求,该注解既可以用在类上,也可以用在方法上。
  • 当使用@RequestMapping标记控制器类时,方法的请求地址是相对类的请求地址而言的;当没有使用@RequestMapping标记类时,方法的请求地址是绝对路径。
  • @RequestMapping的地址可以是uri变量,并且通过@PathVariable注解获取作为方法的参数。也可以是通配符来筛选请求地址。

@ResponseBody注解

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

HTTP 协议

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

HTTP
特点:

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
    • 缺点:多次请求间不能共享数据。
    • 优点:速度快

HTTP请求格式

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

  • 请求方式-GET:
    请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1。GET请求大小是有限制的。
  • 请求方式-POST: 请求参数在请求体中,POST请求大小是没有限制的。

HTTP响应格式

HTTP响应

状态码和响应头

在这里插入图片描述
状态码大全: link
在这里插入图片描述

  • TCP编程

web服务器

在这里插入图片描述
nginx的使用场景是分发服务(代理),tomcat的使用场景是服务部署。

web服务器-Tomcat

在这里插入图片描述
跳转:
在这里插入图片描述

Tomcat-基本使用

Tomcat 部署项目:
将项目放置到 webapps 目录下, 即部署完成

SpringBootWeb-入门程序解析

起步依赖:

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖。
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖。
  • 官方提供的starter:https://docs.spring.io/spring-boot/docs/2.7.4/reference/htmlsingle/#using.build-systems.starters

请求响应

在这里插入图片描述
在这里插入图片描述
Postman工具使用

在这里插入图片描述

Get请求:请求参数在Postman中Params中
Post请求:请求参数在请求体中携带,即Postman中Body中

在这里插入图片描述

//required = false 参数不是必须传递 (默认required = true)
@RequestParam(name="name",required = false)

在这里插入图片描述

实体参数

在这里插入图片描述

数组集合参数

数组
在这里插入图片描述
集合

在这里插入图片描述

数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系

日期参数

日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换
在这里插入图片描述

JSON 参数

JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识
在这里插入图片描述

路径参数

路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数
在这里插入图片描述

总结

在这里插入图片描述

响应

在这里插入图片描述

分层解耦

三层架构

在这里插入图片描述
controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
service:业务逻辑层,处理具体的业务逻辑。
dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。

分层解耦

在这里插入图片描述
控制反转: Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。
依赖注入: Dependency Injection,简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。
Bean对象:IOC容器中创建、管理的对象,称之为bean。

@Autowired //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量 - 依赖注入
注:resouce注解是以名字自动注入,autowired是以类型自动注入
在这里插入图片描述
@Component //将当前类交给IOC容器管理,成为IOC容器中的bean
在这里插入图片描述

bean

在这里插入图片描述
@Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报出如下错误:
在这里插入图片描述
小结:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值