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_321665335 分钟前
mysql 数据库迁移到达梦数据库
数据库·mysql
陌上花开࿈1 小时前
调用第三方接口
java
Aileen_0v01 小时前
【玩转OCR | 腾讯云智能结构化OCR在图像增强与发票识别中的应用实践】
android·java·人工智能·云计算·ocr·腾讯云·玩转腾讯云ocr
Hello.Reader1 小时前
Redis大Key问题全解析
数据库·redis·bootstrap
桂月二二3 小时前
Java与容器化:如何使用Docker和Kubernetes优化Java应用的部署
java·docker·kubernetes
靖顺3 小时前
【OceanBase 诊断调优】—— packet fly cost too much time 的根因分析
数据库·oceanbase
liuxin334455663 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
小马爱打代码3 小时前
设计模式详解(建造者模式)
java·设计模式·建造者模式
栗子~~4 小时前
idea 8年使用整理
java·ide·intellij-idea
2301_801483694 小时前
Maven核心概念
java·maven