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

相关推荐
JAVA学习通1 小时前
北京明光云振铎数据科技Java面经
java·开发语言·科技
贫民窟的勇敢爷们7 小时前
SpringBoot整合AOP切面编程实战,实现日志统一记录+接口权限校验
java·spring boot·spring
Mahir088 小时前
Redis 与 MySQL 数据同步:一致性保证的完整解决方案
数据库·redis·mysql·缓存·面试·数据一致性
2301_769340678 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python
AC赳赳老秦8 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
迈巴赫车主8 小时前
Java基础:list、set、map一遍过
java·开发语言
灵犀学长9 小时前
基于 Spring ThreadPoolTaskScheduler + CronTrigger 实现的动态定时任务调度系统
java·数据库·spring
北秋,9 小时前
PostgreSQL(Postgres)数据库基础用法 + 数字型 + 字符型 完整联合注入实战
数据库·postgresql·开源
m0_5967490910 小时前
JavaScript中手动实现一个new操作符的底层逻辑
jvm·数据库·python
多加点辣也没关系10 小时前
Redis 的安装(详细教程)
数据库·redis·缓存