欢迎光临散文网 会员登陆 & 注册

SpringBootWeb请求响应

2023-03-30 15:02 作者:苏喆i  | 我要投稿

当前最为主流的开发模式:前后端分离

这样我们后端开发人员就用到了postman

postman

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。

作用:常用于进行接口测试

1.简单参数

在原始的web程序中,获取请求参数,需要通过HttpServletRequest 对象手动获取。

SpringBoot方式

简单参数:参数名与形参变量名相同,定义形参即可接收参数。

简单参数:如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。

注意事项:

@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错。 如果该参数是可选的,可以将required属性设置为false。

小结:

1.原始方式获取请求参数

Controller方法形参中声明HttpServletRequest对象

调用对象的getParameter(参数名)

2.SpringBoot中接收简单参数

请求参数名与方法形参变量名相同

会自动进行类型转换

3.@RequestParam注解

方法形参名称与请求参数名称不匹配,通过该注解完成映射

该注解的required属性默认是true,代表请求参数必须传递

2.实体参数

简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可

复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。


小结:

实体对象参数

规则:请求参数名与形参对象属性名相同,即可直接通过POJO接收

3.数组集合参数

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系

小结:

数组集合参数

数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装

集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系

4.日期参数

日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换 

5.JSON 参数

JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识

6.路径参数

路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable 获取路径参数

总结:

1.简单参数

定义方法形参,请求参数名与形参变量名一致。

如果不一致,通过@RequestParam手动映射。

2.实体参数

请求参数名,与实体对象的属性名一致,会自动接收封装

3.数组集合参数

数组:请求参数名与数组名一致,直接封装

集合:请求参数名与集合名一致,@RequestParam绑定关系

4.日期参数

@DateTimeFormat

5.JSON参数

@RequestBody

6.路径参数

@PathVariable

响应数据

@ResponseBody

小结:

1.@ResponseBody

位置:Controller类上/方法上

作用:将方法返回值直接响应,若返回值类型是 实体对象/集合 ,转JSON格式响应

2.统一响应结果

Result(code、msg、data)

案例:获取员工数据,返回统一响应结果,在页面渲染展示

加载并解析emp.xml文件中的数据,完成数据处理,并在页面展示。

步骤:

在pom.xml文件中引入dom4j的依赖,用于解析XML文件

引入资料中提供的解析XML的工具类XMLParserUtils、对应的实体类Emp、XML文件 emp.xml

引入资料中提供的静态页面文件,放在resources下的static目录下

编写Controller程序,处理请求,响应数据

第一步:

第二步:

第三步:

第四步:

这种写法复用性差,难以维护

分层解耦

三层架构

controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。

service:业务逻辑层,处理具体的业务逻辑。

dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。

分层解耦

内聚:软件中各个功能模块内部的功能联系。

耦合:衡量软件中各个层/模块之间的依赖、关联的程度。

软件设计原则:高内聚低耦合。

控制反转: Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。

依赖注入: Dependency Injection,简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。

Bean对象:IOC容器中创建、管理的对象,称之为bean。


IOC & DI 入门

①. Service层 及 Dao层的实现类,交给IOC容器管理。

②. 为Controller及Service注入运行时,依赖的对象。

③. 运行测试。

IOC详解

Bean的声明

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注意事项:

声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。

使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller。

Bean组件扫描

  • 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描。

  • @ComponentScan注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解 @SpringBootApplication 中,默认扫描的范围是启动类所在包及其子包。

DI详解

Bean注入

@Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报错

通过以下几种方案来解决:

@Primary

@Qualifier

@Resource

小结:

1.依赖注入的注解:

@Autowired:默认按照类型自动装配。

如果同类型的bean存在多个:

  • @Primary

  • @Autowired + @Qualifier("bean的名称")

  • @Resource(name="bean的名称")

2. @Resource 与 @Autowired区别

@Autowired 是spring框架提供的注解,而@Resource是JDK提供的注解。

@Autowired 默认是按照类型注入,而@Resource默认是按照名称注入。


SpringBootWeb请求响应的评论 (共 条)

分享到微博请遵守国家法律