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博客

相关推荐
222you3 分钟前
Spring框架的介绍和IoC入门
java·后端·spring
毕设源码-朱学姐3 分钟前
【开题答辩全过程】以 基于Java的人体骨骼健康知识普及系统为例,包含答辩的问题和答案
java·开发语言
喵手4 分钟前
集合框架概述:让数据操作更高效、更灵活!
java·集合·集合框架
Java爱好狂.9 分钟前
如何用JAVA技术设计一个高并发系统?
java·数据库·高并发·架构设计·java面试·java架构师·java八股文
sheji341610 分钟前
【开题答辩全过程】以 基于JAVA的社团管理系统为例,包含答辩的问题和答案
java·开发语言
慌糖10 分钟前
读书笔记之MySQL的字符集与比较规则小读
数据库
油丶酸萝卜别吃12 分钟前
lombok的几个核心注解是什么?
java·tomcat
码农很忙13 分钟前
从0到1搭建智能分析OBS埋点数据的AI Agent:实战指南
数据库·人工智能
安当加密23 分钟前
Oracle数据库透明加密实践:基于TDE架构的安全加固方案
数据库·oracle·架构
织元Zmetaboard23 分钟前
什么是态势感知大屏?
网络·数据库