-
Spring 面试路线最全整理(附面试题精选及答案)
Spring 面试路线最全整理,附 Spring 高频必考面试题及答案。 搞定 Spring 面试题,看这一篇就够了,不用四处找资料,节约大量时间。 1 Spring 面试题及答案 基础 什么是 Spring Spring 的优点、缺点是什么 Spring 的自动装配 Spring 通知有哪些类型 Spring 依赖注入方式 Spring 应用程序有哪些组件 Spring 由哪些模块组成 S…... -
Spring 学习进阶路线及资料(附大厂面试题合集)
Spring 是一款轻量级、功能强大的框架,它的主要作用是解决企业应用开发的复杂性。 Spring 技术是 JavaEE 开发的必知必会的技能,在面试中被问到的概率高达 90%以上 。 想要深入学习 Spring ,就要先了解 Spring 的完整知识体系。 我最新总结的这份 Spring 学习进阶路线及资料,包含了 Spring 涉及的所有核心知识点,可以用来参考学习、构建知识体系、复盘技术栈…... -
Spring 和 SpringBoot 的区别是什么
参考答案 实际上,Spring 是 unopinionated的(予以配置项多,倾向性弱) ,Spring Boot 在平台和库的做法中更 opinionated (更容易上手)。 Spring 和 SpringBoot 的主要区别是: 1. Spring Boot提供极其快速和简化的操作,让 Spring 开发者快速上手。 2. Spring Boot提供了 Spring 运行的默认配置…... -
有几种不同类型的自动代理
参考答案 不同类型的自动代理有3种: BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator Metadata autoproxying 以上,是 Spring面试题【有几种不同类型的自动代理】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
Spring 的自动装配
参考答案 在spring中,使用autowire来配置自动装载模式。对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象。 1. 在Spring框架xml配置中,共有5种自动装配 no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。 byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean …... -
Spring 如何解决循环依赖问题
参考答案 在Spring中,循环依赖问题主要有以下三种情况: 通过构造方法进行依赖注入时产生的循环依赖问题。 通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。 在Spring中,只有第3种方式的循环依赖问题被解决了,第1和第2种方式在遇到循环依赖问题时都会产生异常。 原因: 第1种构造方法注入的情况下…... -
什么是切面 Aspect
参考答案 Aspect 由 pointcount 和 advice 组成,切面是通知和切点的结合。 它既包含了横切逻辑的定义,也包括了连接点的定义。 Spring AOP 就是负责实施切面的框架,它将切面所定义的横切逻辑编织到切面所指定的连接点中。 AOP 的工作重心在于,如何将增强编织目标对象的连接点上,,这里包含两点: 如何通过 pointcut 和 advice 定位到特定的 joinpoi…... -
Spring 通知有哪些类型
参考答案 在AOP术语中,切面的工作被称为通知,实际上是程序执行时要通过SpringAOP框架触发的代码段。 Spring切面可以应用5种类型的通知: 1. 前置通知(Before):在目标方法被调用之前调用通知功能; 2. 后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么; 3. 返回通知(After-returning ):在目标方法成功执行之后调用通知; 4.…... -
JDK 动态代理和 CGLIB 动态代理的区别
参考答案 Spring AOP中的动态代理主要有两种方式:JDK 动态代理和 CGLIB 动态代理: JDK动态代理 只提供接口的代理,不支持类的代理。 核心InvocationHandler接口和Proxy类,InvocationHandler 通过invoke()方法反射来调用目标类中的代码,动态地将横切逻辑和业务编织在一起;接着,Proxy利用 InvocationHandler动态创建一个…... -
Spring AOP and AspectJ AOP 有什么区别
参考答案 Spring AOP and AspectJ AOP 的区别: AspectJ是静态代理的增强,所谓静态代理,就是AOP框架会在编译阶段生成AOP代理类,因此也称为编译时增强,他会在编译阶段将AspectJ(切面)织入到Java字节码中,运行的时候就是增强之后的AOP对象。 Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方…... -
AOP 有哪些实现方式
参考答案 AOP实现的关键在于 代理模式,AOP代理主要分为:静态代理、动态代理。 静态代理的代表为AspectJ; 动态代理则以Spring AOP为代表。 以上,是 Spring面试题【AOP 有哪些实现方式】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
你更倾向用那种事务管理类型
参考答案 大多数Spring框架的用户选择声明式事务管理。 因为: 它对应用代码的影响最小,因此更符合一个无侵入的轻量级容器的思想。 声明式事务管理要优于编程式事务管理,虽然比编程式事务管理(这种方式允许你通过代码控制事务)少了一点灵活性。 它唯一不足地方是,最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。 以上,是 Spring面试题【你更倾向用那种事务管理类型】的参考…... -
Spring 框架的事务管理有哪些优点
参考答案 Spring框架的事务管理的优点: 为不同的事务API 如 JTA,JDBC,Hibernate,JPA 和JDO,提供一个不变的编程模式。 为编程式事务管理提供了一套简单的API而不是一些复杂的事务API。 支持声明式事务管理。 和Spring各种数据访问抽象层很好得集成。 以上,是 Spring面试题【Spring框架的事务管理有哪些优点】的参考答案。 输出,是最好的学习方法。 欢迎…... -
说一下Spring 的事务隔离,以及默认值
参考答案 Spring 有五大隔离级别,默认值为 ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一致: Spring的五大隔离级别: 1. ISOLATION_DEFAULT 用底层数据库的设置隔离级别,数据库设置什么,我就用什么。 2. ISOLATION_READ_UNCOMMITTED 未提交读。 最低隔离级别、事务未提交前,就可被其他事务读取…... -
当多个事务同时存在的时候,Spring 如何处理这些事务的行为
参考答案 spring事务的传播行为: PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。 PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。 PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不…... -
Spring 支持的事务管理类型有哪些
参考答案 Spring支持两种类型的事务管理: 编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。 声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。 以上,是 Spring面试题【Spring支持的事务管理类型有哪些】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---…... -
如何通过 HibernateDaoSupport,将 Spring 和 Hibernate 结合起来
参考答案 用Spring的SessionFactory调用LocalSessionFactory。 集成过程有如下三步: 1. 配置the Hibernate SessionFactory。 2. 继承HibernateDaoSupport实现一个DAO。 3. 在AOP支持的事务中装配。 以上,是 Spring面试题【如何通过HibernateDaoSupport,将Spri…... -
使用 Spring 访问 Hibernate 的方法有哪些
参考答案 在Spring中,有两种方式访问Hibernate: 使用 Hibernate 模板和回调进行控制反转。 扩展 HibernateDAOSupport 并应用 AOP 拦截器节点。 以上,是 Spring面试题【使用Spring访问Hibernate的方法有哪些】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
Spring JDBC API 中存在哪些类
参考答案 Spring JDBC API 中存在以下类: JdbcTemplate SimpleJdbcTemplate NamedParameterJdbcTemplate SimpleJdbcInsert SimpleJdbcCall 以上,是 Spring面试题【spring JDBC API 中存在哪些类】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~…... -
Spring DAO 有什么用
参考答案 Spring DAO(数据访问对象) 的作用: 让JDBC、Hibernate 或 JDO 这样的数据访问技术,更容易以一种统一的方式工作。 用户容易在持久性技术之间切换。 允许在编写代码时,无需考虑捕获每种技术不同的异常。 以上,是 Spring面试题【 Spring DAO有什么用】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ -…... -
在 Spring 框架中如何更有效地使用 JDBC
参考答案 使用Spring JDBC 框架,资源管理和错误处理的代价都会被减轻。 开发者只需写statements 和 queries从数据存取数据。 JDBC也可以在Spring框架提供的模板类的帮助下更有效地被使用,这个模板叫JdbcTemplate。 以上,是 Spring面试题【在Spring框架中如何更有效地使用JDBC】的参考答案。 输出,是最好的学习方法。 欢迎在评论区…... -
解释下对象/关系映射集成模块
参考答案 Spring 通过提供ORM模块,支持我们在直接JDBC之上,使用一个对象/关系映射映射(ORM)工具。 Spring 支持集成主流的ORM框架:Hiberate、JDO、iBATIS、JPA、TopLink、JDO、OJB等。 Spring的事务管理同样支持以上所有ORM框架及JDBC。 以上,是 Spring面试题【解释下对象/关系映射集成模块】的参考答案。 输出,是最好的学习方法。…... -
Spring 的 IOC 支持哪些功能
参考答案 Spring 的 IOC 设计支持以下功能: 依赖注入; 依赖检查; 自动装配; 支持集合; 指定初始化方法和销毁方法; 支持回调某些方法(但是需要实现 Spring 接口,略有侵入)。 其中,最重要的就是依赖注入,从 XML 的配置上说,即 ref 标签。对应 Spring RuntimeBeanReference 对象。 对于 IOC 来说,最重要的就是容器。容器管理着 Bean 的…... -
Spring IOC 的实现机制
参考答案 Spring 中的 IoC 的实现原理,就是工厂模式 加 反射机制。 实例: interface Fruit { public abstract void eat(); } class Apple implements Fruit { public void eat(){ System.out.println("Apple"); } } class Orange im…...