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博客
下面同样也是面试题: