JavaWeb开发01--Maven-Web入门-请求响应-分层解耦

一、Maven

1.maven概述

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。

根据提供的插件实现很多功能

maven的作用

管理和构建java项目的工具

依赖管理:可以直接在pom.xml文件中修改描述信息就可以得到相应Jar包

统一项目管理:让不同IDE的格式都一样可以在不同软件上打开

项目构建:可以一键实现很多操作

2.依赖

①依赖配置

https://mvnrepository.com/

②依赖传递

③依赖范围

④生命周期

每个生命周期有不同阶段,但只需要关注5个阶段就可以

同一套生命周期阶段是有顺序的

二、Web入门

1.SpringBoot入门

从SpringBoot开始,贯穿始终


2.HTTP协议

请求数据的格式,返回数据的格式

①请求数据格式:

常见请求头:

请求体是POST请求独有的,会将请求的参数放入请求体中,而Get直接放在请求行,格式是会请求行那写的格式(请求行体现就是网址那地方,请求体要打开F12开发者工具才能看到)

②响应格式

常见响应码:

③协议解析

步骤:监听指定端口,若响应就开启线程执行处理请求,使用IO流读取HTTP请求并发送数据,根据请求行请求头输出前端响应的数据。

3.Tomcat

简介:

如何部署:把文件夹直接放到Tomcatwebapps目录下

三、请求响应

Tomcat会将HTTP协议请求中的信息封装到HttpServleRequest这个对象中去
TomcatHttp会用ServleReques对象来响应数据

我们需要关注的是Countroller中的程序,获取请求参数,设置响应数据

1.请求

①简单参数

要保证参数名和形参变量名相同,如果不同:

注意使用这个注解后,,required默认为true,就必须传这个参数,不传就报错

②实体参数

当传递的简单参数过多,就得使用实体参数,实体中成员变量名必须一致。

复杂实体,传递中包含实体,就得按照层次一一对应

③数组集合参数

传递的一个值有多个就直接请求多个用&连接。
如果使用数组接收,数组名只要与变量名一致就行。
如果使用集合接受,名字一致还需有@RequestParam注解

④日期参数

⑤JSON参数

JSON需要使用POST的请求方式,把数据放进请求体中,并且设置为JSON,JSON中所有的KEY要用双引号

需要加注解,RequestBody会将JSON中的数据封装到实体对象中去

⑥路径参数

请求方式:

这里的id是路径参数,需要注解PathVariable就会将路径参数绑定给方法形参id

多个路径参数请求与接收方式:

2.响应

若返回的是一个对象是一个集合,会将其转为JSON格式再转出去,并放在响应体中

由于响应数据各式各样,所以为了统一使用Result实体对象

这个类包含有参无参构造器,以及静态方法sucess和defeat,这两个方法直接返回的是result对象,便于直接构造result对象。

剩余两个类似

案例:

用户请求

四、分层解耦

1.三层架构

controller层接收请求响应数据,调用了service对进行逻辑处理,获取数据时调用了dao层查询数据,再返回给service,service处理后返回给controller数据,contoller再响应数据。

2.分层解耦

高内聚:例如与员工相关的就只在与员工处理中执行
低耦合:就是模块间尽量少的调用

耦合的意思是,我service更改了一个,在controller中也要进行相应修改

解耦合:将对象交给容器,程序需要调用的时候就从容器中去寻找

3.IOC&DI入门

对于第一步,需要被调用的类交给容器,就只需要在service和dao类前加@Component注解成为了容器中的bean,对于要调用类的地方要加上@Autowired注解,程序在运行时会提供该类型的bean对象,并赋值给该变量

要切换对象的时候就将被切换的对象上的注解注释掉,再对要切换的对象加上注释就行。

4.IOC详解

Component一般不使用除非时不属于这三个层
对于controller层不需要注释,因为原本的RestController就包含了Controller注释和ResponseBody

Bean组件扫描

SpringBoot启动类中的注解就包含了组件扫描注解,但是只扫描所在包和子包

5.DI详解

如果有多同类型的类都注解了component,存在多个同类型的bean就会出现错误

我觉得primary好,不用修改controller程序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值