Spring常见面试题及知识点总结

本文详述了Spring框架在面试中的常见问题,包括Spring框架的模块、优点、IOC和DI概念、依赖注入的实现方式、Spring容器创建对象的途径、配置方式、Bean的生命周期、延迟加载和自动装配原理。此外,还介绍了Spring Bean的作用域、设计模式应用、事件处理、AOP原理以及Spring MVC的工作流程。最后,提到了Spring Boot、Spring Cloud相关学习资源。
摘要由CSDN通过智能技术生成

Java面试中,面试官必问的知识点,那就是Spring了,猿人熬了几个夜整理的spring家族的知识点,包括Spring、SpringMVC、SpringBoot、SpringCloud,对Spring、SpringMVC的相关概念和原理进行了讲解,同时给大家准备了SpringBoot、SpringCloud实战学习资源,含源码和文档。

点这里SpringBoot/SpringCloud学习源码和文档 获取学习资料,猿人熬了无数个夜才整理出来的,加油,要学习的朋友们!

1.你对Spring框架的理解,Spring框架有哪些模块?

Spring是一个轻量级的IoC和AOP容器框架,是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。

  • Spring,一种用来简化企业应用级开发的一种开源框架。
  • 简化开发:它对常用的API做了封装,比如对JDBC的封装,使用Spring JDBC访问数据库,就不需要考虑如何获取连接和关闭的问题。
  • 解耦:Spring帮我们管理软件之间的依赖关系,这样对象之间的耦合性就降低了,这样的维护性就得到了提高。
  • 集成其它框架:方便扩展和优化其功能,例如和Mybatis的集成等。
  • Spring框架是按照设计模式精心打造的,这使得我们在开发环境中,能方便的使用框架,不用考虑后台是怎么进行的。
  • Spring容器是Spring框架中一个核心的模块,用来管理对象的创建,销毁和初始化等操作,以及对象之间的依赖关系等。

主要包括以下七个模块:

  • Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
  • Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;
  • Spring AOP:AOP服务;
  • Spring Web:提供了基本的面向Web的综合特性,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器;
  • Spring MVC:提供面向Web应用的Model-View-Controller,即MVC实现;
  • Spring DAO:对JDBC的抽象封装,简化了数据访问异常的处理,并能统一管理JDBC事务;
  • Spring ORM:对现有的ORM框架的支持。

2.Spring的优点?

  • 简化开发,解耦,集成其它框架。
  • 低侵入式设计。
  • Spring的DI机制降低了业务对象替换的复杂性,提高了软件之间的解耦。
  • Spring AOP支持将一些通用的任务进行集中式的管理,例如:安全,事务,日志等,从而使代码能更好的复用。

3.什么是控制反转(IOC),什么是依赖注入(DI)?

  • IOC:就是对象之间的依赖关系由容器来创建,对象之间的关系本来是由我们开发者自己创建和维护的,在我们使用Spring框架后,对象之间的关系由容器来创建和维护,将开发者做的事让容器做,这就是控制反转。BeanFactory接口是Spring Ioc容器的核心接口。
  • DI:我们在使用Spring容器的时候,容器通过调用set方法或者是构造器来建立对象之间的依赖关系。
  • 控制反转是目标,依赖注入是我们实现控制反转的一种手段。

4.Java中实现依赖注入的三种方式?

  • 构造器注入
  • set方法注入
  • 接口注入

5.Spring容器中如何创建对象?

  • 无参构造器创建对象
  • 有参构造器创建对象
  • 工厂类创建对象

福利

猿人整理的spring家族的知识点,包括Spring、SpringMVC、SpringBoot、SpringCloud,对Spring、SpringMVC的相关概念和原理进行了讲解,同时给大家准备了SpringBoot、SpringCloud实战学习资源,含源码和文档。

SpringBoot

  • 第001课:Spring Boot 课程概览【springboot-abstract工程】
  • 第002课:Spring Boot 开发环境搭建【springboot-hello工程】
  • 第003课:Spring Boot 快速体验 Web 开发【springboot-web工程】
  • 第004课:Spring Boot 项目属性配置【springboot-config工程】
  • 第005课:Spring Boot 中MVC支持【springboot-mvc工程】
  • 第006课:Spring Boot 集成 MyBatis【springboot-mybatis工程】
  • 第007课:Spring Boot MyBatis Druid 多数据源配置【springboot-druid工程】
  • 第008课:Spring Boot 返回JSON数据格式封装【springboot-json工程】
  • 第009课:Spring Boot 使用slf4j日志记录【springboot-log工程】
  • 第010课:Spring Boot 集成Swagger接口文档【springboot-swagger工程】
  • 第011课:Spring Boot 集成Thymeleaf模板引擎【springboot-thymeleaf工程】
  • 第012课:Spring Boot 全局异常处理【springboot-exception工程】
  • 第013课:Spring Boot 切面AOP处理【springboot-aop工程】
  • 第014课:Spring Boot 事务管理【springboot-transactional工程】
  • 第015课:Spring Boot 监听器【springboot-listener工程】
  • 第016课:Spring Boot 拦截器【springboot-interceptor工程】
  • 第017课:Spring Boot 集成Redis【springboot-redis工程】
  • 第018课:Spring Boot 集成 Quartz【springboot-quartz工程】
  • 第019课:Spring Boot 集成Shiro【springboot-shiro工程】
  • 第020课:Spring Boot 发送邮件【springboot-mail工程】
  • 第021课:Spring Boot MongoDB 实战【springboot-mongodb工程】
  • 第022课:Spring Boot 项目打包与部署【springboot-jar工程】
  • 第023课:Spring Boot 搭建实际项目开发框架【springboot-framework工程】
  • 第024课:Spring Boot 综合实战用户管理系统【springboot-user工程】

SpringCloud

  • SpringCloud 实战教程 | 001篇: 服务注册与发现Eureka
  • SpringCloud 实战教程 | 002篇: 服务消费者Rest+Ribbon方式
  • SpringCloud 实战教程 | 003篇: 服务消费者Feign方式
  • SpringCloud 实战教程 | 004篇: 断路器Hystrix
  • SpringCloud 实战教程 | 005篇: 路由网关Zuul
  • SpringCloud 实战教程 | 006篇: 分布式配置中心SpringCloud Config
  • S
  • 14
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿码天地

相互学习,谢谢您的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值