返回顶部
首页 > 资讯 > 后端开发 > Python >面试JAVA时,问到spring该怎么回答
  • 568
分享到

面试JAVA时,问到spring该怎么回答

2024-04-02 19:04:59 568人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录spring面试十连问 1、谈谈对ioc的理解?2、多个aop的顺序怎么定义3、springBean是线程安全的吗?4、Spring中的bean生命周期?5、Sprin

Spring面试十连问 

1、谈谈对ioC的理解?

IOC,就是我们经常所说的控制反转,DI,就是依赖注入,这两个是对同一个事物从不同角度的解释。没有使用spring框架的时候,我们需要使用一个对象,经常需要自己去手动new,需要自己取管理对象。使用spring的IOC容器之后,对象交给spring的IOC容器管理,bean的创建,初始化,结束,依赖注入等一系列,全部由IOC容器帮我们完成,我们在需要使用的时候,直接调用就行了。

2、多个AOP的顺序怎么定义

通过 Ordered 和 PriorityOrdered 接口进行排序。PriorityOrdered 接口的优先级比 Ordered 更高,如果同时实现 PriorityOrdered 或 Ordered 接口,则再按 order 值排序,值越小的优先级越高。

3、springBean是线程安全的吗?

结论: Bean是线程不安全的

Spring容器中的Bean是否线程安全,容器本身并没有提供对Bean的线程安全策略,因此可以说Spring的Bean本身不具备线程安全的特性。

如果Bean是无状态的,那么Bean则是线程安全的

如果Bean是有状态的,那么Bean就不是线程安全的

另外,Bean是不是线程安全,跟Bean的作用域没有关系,Bean的作用域只是表示Bean的生命周期范围,对于任何生命周期Bean都是一个对象,这个对象是不是线程安全的,还是得看Bean里的这个对象本身

4、Spring中的bean生命周期?

1.Bean容器找到配置文件中Spring Bean的定义。

2.Bean容器利用Java Reflection api创建一个Bean的实例。

3.如果涉及到一些属性值,利用set()方法设置一些属性值。

4.如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。

5.如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象的实例。

6.如果Bean实现了BeanFactoryAware接口,调用setBeanClassFacotory()方法,传入ClassLoader对象的实例。

7.与上面的类似,如果实现了其他*Aware接口,就调用相应的方法。

8.如果有和加载这个Bean的Spring容器相关的BeanPostProcessor对象,执行postProcessBeforeInitialization()方法。

9.如果Bean实现了InitializingBean接口,执行afeterPropertiesSet()方法。

10.如果Bean在配置文件中的定义包含init-method属性,执行指定的方法。

11.如果有和加载这个Bean的Spring容器相关的BeanPostProcess对象,执行postProcessAfterInitialization()方法。

12.当要销毁Bean的时候,如果Bean实现了DisposableBean接口,执行destroy()方法。

13.当要销毁Bean的时候,如果Bean在配置文件中的定义包含destroy-method属性,执行指定的方法。

5、Spring 框架中都用到了哪些设计模式?

1.工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;

2.单例模式:Bean默认为单例模式。

3.代理模式:Spring的AOP功能用到了jdk的动态代理和CGLIB字节码生成技术;

4.模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。观

5.察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。

6、@Autowired和@Resource之间的区别

@Autowired可用于:构造函数、成员变量、Setter方法

@Autowired和@Resource之间的区别

  • @Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。
  • @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。

7、Spring支持的事务管理类型?

Spring支持两种类型的事务管理:

编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。

声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

8、你更倾向用那种事务管理类型?

大多数Spring框架的用户选择声明式事务管理,因为它对应用代码的影响最小,因此更符合一个无侵入的轻量级容器的思想。声明式事务管理要优于编程式事务管理,虽然比编程式事务管理(这种方式允许你通过代码控制事务)少了一点灵活性。唯一不足地方是,最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。

9、Spring事务中有哪几种事务传播行为?

在TransactionDefinition接口中定义了八个表示事务传播行为的常量。

支持当前事务的情况:

PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。

PROPAGATION_SUPPORTS: 如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。

PROPAGATION_MANDATORY: 如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。(mandatory:强制性)。

不支持当前事务的情况:

PROPAGATION_REQUIRES_NEW: 创建一个新的事务,如果当前存在事务,则把当前事务挂起。

PROPAGATION_NOT_SUPPORTED: 以非事务方式运行,如果当前存在事务,则把当前事务挂起。

PROPAGATION_NEVER: 以非事务方式运行,如果当前存在事务,则抛出异常。

其他情况:

PROPAGATION_NESTED: 如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于PROPAGATION_REQUIRED。

10、Spring通知有哪些类型?

在AOP术语中,切面的工作被称为通知,实际上是程序执行时要通过SpringAOP框架触发的代码段。

Spring切面可以应用5种类型的通知:

1.前置通知(Before):在目标方法被调用之前调用通知功能;

2.后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;

3.返回通知(After-returning ):在目标方法成功执行之后调用通知;

4.异常通知(After-throwing):在目标方法抛出异常后调用通知;

5.环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。

总结

本片文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 面试JAVA时,问到spring该怎么回答

本文链接: https://lsjlt.com/news/134036.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 面试JAVA时,问到spring该怎么回答
    目录Spring面试十连问 1、谈谈对IOC的理解?2、多个AOP的顺序怎么定义3、springBean是线程安全的吗?4、Spring中的bean生命周期?5、Sprin...
    99+
    2024-04-02
  • Java开发岗位面试被问到嵌套类该怎么回答
    这篇文章将为大家详细讲解有关Java开发岗位面试被问到嵌套类该怎么回答,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。嵌套类分类静态内部类(静态嵌套类/静态成员类/静态类)内部类(非静态嵌套类)内部成员类本...
    99+
    2023-06-20
  • 面试官问到ThreadLocal的问题怎么回答
    本篇内容主要讲解“面试官问到ThreadLocal的问题怎么回答”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“面试官问到ThreadLocal的问题怎么回答”吧...
    99+
    2024-04-02
  • 面试官问到go http日志,你该如何回答?
    在使用Go语言开发Web应用时,日志记录是非常重要的一部分。通过记录日志,我们可以了解应用程序的运行状态,排查问题,优化性能等。而HTTP日志则是Web应用最基本的日志记录方式之一,记录了Web服务器接收和响应HTTP请求的详细信息。当面...
    99+
    2023-08-04
    http 面试 日志
  • 面试官问到ASP中的数据类型,你该如何回答?
    ASP是一种非常流行的Web开发语言,它的数据类型是ASP开发中一个非常重要的方面。在面试中,面试官可能会问到ASP中的数据类型,因此,本篇文章将为大家介绍ASP中的数据类型,并为大家提供相应的演示代码。 ASP中的数据类型 ASP支持多种...
    99+
    2023-07-28
    数据类型 面试 http
  • 在 Java 面试中如何回答同步和 Spring 相关问题?
    在 Java 面试中,同步和 Spring 相关问题是经常被问到的。同步是 Java 中一个比较重要的概念,而 Spring 是一个广泛使用的框架,因此在面试中,这两个主题经常被提及。 在本文中,我们将深入探讨如何回答同步和 Spring ...
    99+
    2023-09-22
    面试 同步 spring
  • 面试问Vue2与Vue3的区别怎么回答
    这篇文章主要讲解了“面试问Vue2与Vue3的区别怎么回答”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“面试问Vue2与Vue3的区别怎么回答”吧!Vue 内部根据功能可以被分为三个大的模块...
    99+
    2023-07-05
  • 面试官问你Vue2的响应式原理该如何回答?
    目录前言响应式对象响应式开始的地方Observer实现响应式的defineReactivedepwatcher依赖收集派发更新总结前言 可能很多小伙伴之前都了解过 Vue2实现响应式...
    99+
    2022-12-14
    Vue2响应式原理 Vue 响应式原理 Vue 响应式
  • 面试官问到 Spring,你是否能够自信地回答?Python 可以让你做到!
    在现代软件开发的世界中,Spring框架是一个广泛应用的Java框架,它提供了大量的库和工具,使得开发者可以更加高效地构建Web应用程序。在面试中,面试官经常会问到Spring框架相关的问题。如果你不熟悉Spring框架,你可能会失去机会。...
    99+
    2023-11-10
    响应 面试 spring
  • 面试官问你Java并发编程,如何回答?
    Java并发编程是Java程序员必须掌握的重要技能之一。在面试中,面试官可能会问到一些与Java并发编程相关的问题,例如线程安全、同步机制等。那么,如果面试官问你Java并发编程,你应该如何回答呢?本文将为大家提供一些指导性的建议。 首先,...
    99+
    2023-11-14
    响应 面试 并发
  • 【面试】Java面试频繁问到的题最新整理(附答案)
    文章目录 一、Java基础部分面试题1.1. Java面向对象的三个特征1.2. Java中基本的数据类型有哪些 以及他们的占用字节1.3. int和Integer的区别1.4. String、StringBuilder、Strin...
    99+
    2023-08-30
    java 面试
  • 面试回答spring工作原理及为什么用
    spring工作机制及为什么要用1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMa...
    99+
    2023-06-03
  • 面试攻略:如何回答 Java 缓存相关问题?
    在面试过程中,Java 缓存相关问题是经常被问到的一个话题。因为缓存是提高系统性能和用户体验的重要手段,而在 Java 语言中,缓存机制也是非常重要的一部分。本文将介绍 Java 缓存相关问题的常见问题和解决方法,并通过演示代码来帮助读者...
    99+
    2023-10-06
    缓存 学习笔记 面试
  • 面试官问你:MySQL事务和隔离级别,你该如何回答
    一、事务 事务是由一组SQL语句组成的逻辑处理单元,是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。事务具有以下4个属性,通常简称为事务的ACID属性: 原子性(Atomic...
    99+
    2014-10-20
    面试官问你:MySQL事务和隔离级别,你该如何回答 数据库入门 数据库基础教程 数据库 mysql
  • JAVA十大面试问答题是什么
    本篇内容介绍了“JAVA十大面试问答题是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、String是最基本的数据类型吗?  答:...
    99+
    2023-06-27
  • 如何在 Python 面试中回答有关实时 API 的问题?
    Python 是一种非常流行的编程语言,它在各种领域中都有广泛的应用。在 Python 面试中,经常会被问及实时 API 相关的问题。本文将帮助你了解如何在 Python 面试中回答有关实时 API 的问题。 什么是实时 API? 实时 A...
    99+
    2023-08-17
    面试 实时 api
  • 面试中,Java 和 JavaScript 存储的相关问题如何回答?
    Java 和 JavaScript 都是现代编程领域中广泛应用的语言,它们各自具有不同的特点和用途。在面试中,经常会涉及到 Java 和 JavaScript 存储相关的问题,这些问题主要涉及到数据库、变量和对象的存储和访问等方面。本文将介...
    99+
    2023-08-05
    存储 面试 javascript
  • 索引和异步编程:在Java面试中被问到的常见问题和如何回答?
    在Java面试中,索引和异步编程是两个非常常见的问题。本文将介绍这两个问题,并提供如何回答这些问题的一些提示。 索引 在数据库中,索引是一种用于加速查询的数据结构。在Java中,我们可以使用索引来加速数组、列表和映射等数据结构的访问。 在...
    99+
    2023-06-15
    面试 索引 异步编程
  • Java面试中不可错过的Spring和Unix问题及其答案!
    在Java面试中,Spring和Unix是两个非常重要的话题,因为它们分别代表了Java开发中的关键框架和操作系统。在这篇文章中,我们将讨论一些Java面试中不可错过的Spring和Unix问题及其答案,以帮助您在面试中更好地表现自己。 ...
    99+
    2023-09-16
    面试 spring unix
  • 面试官问到了PHP和大数据打包,你会如何回答?
    PHP和大数据打包是一个较为复杂的话题,在面试中被问到也是很正常的。如果你是一名PHP开发者,那么对于这个问题的回答应该是非常重要的。本文将探讨PHP和大数据打包的相关知识,并提供一些代码示例来帮助您更好地回答这个问题。 一、什么是PHP和...
    99+
    2023-07-07
    大数据 打包 面试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作