spring常见面试题

1、spring、springmvc、springBoot之间有什么区别和联系?

spring是一个一站式的轻量级java开发框架核心是控制反转和面向切面

springmvc是spring基础之上的mvc框架,主要处理web路径映射和视图渲染,属于spring框架中web层开发的一部分

springBoot框架对spring框架进行了配置的简化,相对于springmvc来说,更专注于开发微服务后端接口,不开发前端视图

详细介绍三者:

spring、springmvc、springboot框架的介绍-CSDN博客

2、 BeanFactory和FactoryBean的区别?

BeanFactory是一个对象工厂,IOC的顶级接口,核心是管理和获取bean对象

FactoryBean是一个bean生成工具,是用来获取一种类型对象的bean,它是构造bean实例的一种方式

3、springBean的生命周期?

创建实例--属性注入--初始化--使用--销毁

4、spring MVC的工作原理?

1、客户端向Http发送请求

2、请求被前端控制器捕获,

3、前端控制器根据请求中的url来找到对应的处理器映射

4、处理器映射将请求映射到一个具体的处理器上,也就是controller中的某个方法

5、处理器业务逻辑被执行,返回ModelAndView

6、ModelAndView包含处理结果和视图名称,并调用viewResolver解析成真正的视图

7、试图将Model数据渲染成html,并返回给客户端

5、springBean的作用域?

singleton:单例模式,在整个项目中,对象只被创建了一次,线程不安全

prototype:原型模式,使用一次创建一次

session:一次会话一个实例

request:一次请求一个实例

Global Session:在一个全局的Http Session中,容器会返回该bean的同一个实例,仅在使用protlet context时有效

6、spring由哪些模块组成?

spring core:框架的基本组成部分,包含控制反转和依赖注入

spring beans:beanFactory是工厂模式的一种体现,将管理对象称之为bean

spring context:构建与core封装包基础之上的context封装包

spring ORM:spring框架插入若千个ORM框架,从而提供了ORM的对象关系工具

spring Aop:面向切面,作为面向对象的一种补充,自定义拦截点、切点

spring jdbc:提供了jdbc的抽象层,消除了繁琐的jdbc编码,简化了jdbc

spring web:web开发集成特性

spring Test:提供了测试,支持单元测试和集成测试

7、依赖注入的方式?

支持四种注入方式

分别是 setter方法注入、构造器注入、静态工厂、实例工厂

spring常用的是setter方法注入、构造器注入

8、spring中单例bean是线程安全的吗?

单例bean是线程不安全的,是所有线程所共享的,如果同时有多个线程访问bean对象时,可能会出现异常情况

9、什么是IOC容器

控制反转,是一种设计模式,将对象的创建、配置、管理交给spring容器来完成,ioc容器实际上就是一个Map,存储的就是各种对象

10、什么是依赖注入

DI是一种设计模式,通过在对象之间注入依赖关系,而不是在对象内部创建它们来解耦对象之间的依赖关系,依赖注入就是将IOC中存储的对象取出并使用的形式

11、spring框架都有哪些特点

轻量级:一个完整的spring框架可以放在只有1M的jar包

控制反转:通过控制反转技术促进低耦合

面向切面:作为面向对象的一种补充,并且把应用的业务逻辑和系统服务分开

容器:包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器

框架集合:可以将简单的组件配置,组合成为复杂的应用

12、你对springmvc了解吗?

Model1时代:几乎全用jsp页面,只用少量的servlet

Model2时代:java bean+jsp+servlet

springMvc时代:dao层,controller层,entity层,service层

springBoot框架的运行原理:

SpringBoot运行原理(超详细!!!面试必考)-CSDN博客

下面同样也是面试题:

java面试题-CSDN博客

关于java常见的面试题(内附26道)上-CSDN博客

相关推荐
qq_508823403 小时前
金融数据库--3Baostock
数据库·金融
Lionel_SSL3 小时前
《深入理解Java虚拟机》第三章读书笔记:垃圾回收机制与内存管理
java·开发语言·jvm
记得开心一点嘛3 小时前
手搓Springboot
java·spring boot·spring
悦数图数据库3 小时前
图技术重塑金融未来:悦数图数据库如何驱动行业创新与风控变革
数据库·金融
九河云3 小时前
华为云 GaussDB:金融级高可用数据库,为核心业务保驾护航
网络·数据库·科技·金融·华为云·gaussdb
老华带你飞3 小时前
租房平台|租房管理平台小程序系统|基于java的租房系统 设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·租房系统管理平台
独行soc3 小时前
2025年渗透测试面试题总结-66(题目+回答)
java·网络·python·安全·web安全·adb·渗透测试
脑子慢且灵4 小时前
[JavaWeb]模拟一个简易的Tomcat服务(Servlet注解)
java·后端·servlet·tomcat·intellij-idea·web
华仔啊5 小时前
SpringBoot 中 6 种数据脱敏方案,第 5 种太强了,支持深度递归!
java·后端
异常驯兽师6 小时前
Spring 中处理 HTTP 请求参数注解全解析
java·spring·http