儿童节问女朋友要礼物-她反手给我一套Spring框架面试真题!

  • 秋招将至,坚持每日学习、打卡、秋招Offer满满哦!

  • 题目会持续更新,且保证有质量,期待你的参与,一起打卡,一起进步!

在这里插入图片描述

二: 面试题目

说好的礼物呢,你就给我看这个!!!

在这里插入图片描述

在这里插入图片描述

打我没关系、但是你要看完这篇文章!!!

在这里插入图片描述

一: 你可以简单描述下SpringMvc的执行流程吗


在这里插入图片描述

1、前端控制器(DispatchServlet)接收到客户端发送的请求

2、收到请求后它会转发给处理器映射器(HandlerMapping),请求获取Handler。

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象和处理器拦截器(如果有),然后一并返回给DispatcherServlet。

4、前端控制器请求返回的处理器对象转发给处理器适配器(HandlerAdapter)

5、处理器适配器通过适配处理调用具体的处理器(Handler)既执行实际的后端逻辑处理代码,生成结果。

6、处理器适配器将Handler执行的结果ModelAndView返回给前端控制器

7、前端控制器将返回的ModelAndView转发给ViewResolver解析成View,并将View对象返回给前端控制器。

8、前端控制器接收到View对象然后转发给视图(一个接口,用于渲染视图)进行数据渲染。

9、前端控制器将处理结果响应给客户端

二: 说说你使用SpringMVC时常用到的注解以及作用


在这里插入图片描述

1、Controller/Service/Repository/Component: 用于标识当前类属于控制层/业务层/数据层/泛指组件(通用),被标记的类会被Spring容器进行管理。

2、RequestMapping: 请求地址映射,客户端请求映射路径可以到控制层,可以作用在或者方法中,当在类范围使用时,表示类中所有请求的父路径,当使用在某个方法时,表示当前方法的请求路径

3、RequestBody: 用于标记请求参数,被标记的参数会自动将请求的参数映射到符合条件的接受参数实体中

4、ResponseBody: 将反馈结果使用框架中对应的JSON框架转换成json字符串,可以使用在类或者方法中,当使用在类时,表示将类中所有的方法的反馈结果都转换成对应的JSON字符串,使用在方法时,表示将该方法的反馈结果转换成JSON字符串

5、RequestParam: 获取URL中携带的请求参数既URL中“?”后携带的参数,c传递参数的格式是:key=value

6、PathVariable: 用于获取URL中路径的参数值,参数名由RequestMapping注解请求路径时指定,常用语restful风格的api中,传递参数格式:直接在url后添加需要传递的值即可 如:/api/demo/1

7、Autowired: 自动装配,Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。当Spring找不到bean时会抛出异常,将@Autowired注解的required属性设置为false 不会抛出异常,会显示null

8、Resource: 类型填充,默认通过name属性去匹配bean,当找不到时再按type去匹配,当指定了name或者type则根据指定的类型去匹配bean,任何一个不匹配都报错

9、RestController: 实际上就是等于 Controller + ResponseBody的作用

三: Spring Framework、Springboot和Springmvc有什么区别


在这里插入图片描述

一 详细:

1、Spring就是一个框架家族,它是为了解决企业应用开发的复杂性而创建的,由它衍生出了spring security、spring jpa、spring Cloud等产品,但是,这些产品的基础还是基于Spring框架中的IOC和AOP,IOC提高了依赖注入的容器,降低了对象间的耦合性,AOP提供了面向切面的编程,提高了代码的复用性,然后在两者的基础上实现了其他延伸产品的高级功能。

2、SpringMVC: 它提供了一种轻度耦合的方式来开发web应用。属于Sping家族中的一个模块,是一个web框架,通过前端控制器、处理器映射器、处理器适配器、视图解析器等使得开发web应用变得更容易。

3、SpringBoot: 它属于Spring家族中的一个子项目,是为了解决使用Spring项目开发时需要进行大量配置的问题,它并不是用于替换Spring框架的解决方案,而是依赖于Spring框架,集成了许多常用的第三方框架,遵循了"约定大于配置"的原则,让开发者则能够对主流的技术开箱即用,提升开发效率。

二: 总结

1、Spring实际上是一个框架家族,Spring Framework属于其中的一个子模块,基于IOC和AOP实现组件解耦

2、SpringBoot可以看做是一个整合工具,可以方便快速使用

3、SpringMVC是以Spring为基础,拓展出来的一个MVC包,提供了一种轻度耦合的方式来开发web应用。

四: 说说Spring Framework的一个体系结构和对应jar包的作用


在这里插入图片描述

在这里插入图片描述

一: Data Access模块相关jar包

1、Spring-JDBC: jdbc支持包

2、Spring-tx: 支持事务控制

3、Spring-orm: 对象映射关系,继承orm框架

4、Spring-oxm: 支持对象xml映射

5、Spring-jms: 支持对象消息服务

二: Web模块相关jar包

1、Spring-web: 基础的web功能

2、Spring-webmvc: 支持webmvc实现

3、Spring-webmvc-porlet: 基于porlet的mvc实现

4、Spring-structs: 集成structs,但spring4不再推荐

5、Spring-websocket: websocker支持(spring4),为web应用程序提高高效的通信工具。

6、Spring-mssaging: 支持构建消息的应用程序(Spring4支持)

三: AOP模块相关的jar包

1、Spring-AOP: 支持面向切面编程

2、Spring-Aspect: 集成Aspect,支持使用Aspect实现面向切面编程

3、Spring-instrument: 提供一些类级的工具支持以及classloader的实现

四: Core Container模块相关的jar包

1、Spring-core: 提供依赖注入DI和控制反转IOC的支持

2、Spring-beans: Bean工厂和bean的装配支持

3、Spring-context: Spring的上下文支持

4、Spring-Expression: 支持Spring表达式语言

五: Test模块相关的jar包

1、Spring-test: 提供junit和Mock测试功能

2、Spring-context-support: Spring的额外包支持如邮件服务

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-BQ86jWHt-1710916350739)]
[外链图片转存中…(img-1yQtqJ8o-1710916350740)]
[外链图片转存中…(img-sUawuWeg-1710916350740)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-6LZ0d5A6-1710916350740)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值