爪哇 2博客
 爪哇 2博客

春季面试常见问题解答

春季面试题

在这篇文章中,我们将看到Spring访谈访谈问题。如果您是Java / j2ee开发人员,并且有一定的经验 弹簧 ,您将面对Spring面试问题。

在这里,我分享了一些重要的春季面试问题。

1.什么是Spring框架?

春季框架 是一个开放源代码框架,旨在解决企业应用程序开发的复杂性。 弹簧 框架的主要优势之一是其分层体系结构,该体系结构使您可以选择使用哪个组件。 弹簧 的主要模块是Spring核心,Spring AOP和Spring MVC。

2. 弹簧 框架的主要特征是什么?

  • 轻巧:

    在尺寸和透明度方面,spring是轻巧的。 spring框架的基本版本约为1MB。而且处理开销也可以忽略不计。
  • 控制反转(IOC):
    依赖注入或控制反转的基本概念是,程序员无需创建对象,而只需描述应如何创建。
  • 面向方面(AOP): 

    弹簧 支持面向方面的编程。
    面向方面的编程 指将辅助功能或支持功能与主程序隔离的编程范例’的业务逻辑。 AOP是用于分离横切关注点的有前途的技术,这在面向对象的编程中通常很难做到。应用程序’这样就增加了模块化,并且维护变得非常容易。
  • 容器:
    弹簧 包含并管理应用程序对象的生命周期和配置。
  • MVC框架:
    弹簧 带有基于核心Spring功能构建的MVC Web应用程序框架。该框架可通过策略界面进行高度配置,并包含JSP,Velocity,Tiles,iText和POI等多种视图技术。
  • 交易管理:
    弹簧 框架为事务管理提供了通用的抽象层。这使开发人员可以添加可插入的事务管理器,并且可以轻松地划分事务,而无需处理低级问题。
  • JDBC异常处理:
    弹簧 的JDBC抽象层提供了有意义的异常层次结构,从而简化了错误处理策略。与Hibernate,JDO和iBATIS集成:Spring提供与Hibernate,JDO和iBATIS的最佳集成服务

3.解释Spring的主要模块?

  • 春季AOP:
    弹簧 的关键组件之一是 AOP框架。在春季使用AOP:

    • 提供声明性企业服务,尤其是代替EJB声明性服务。最重要的服务是 声明式交易管理,它基于Spring’的交易抽象。
    • 为了允许用户实现自定义方面,以AOP补充其对OOP的使用
  • 春季ORM:
    的   ORM  软件包与数据库访问有关。它为流行的对象关系映射API(包括JDO,Hibernate和iBatis)提供了集成层。
  • 春季网:
    春季网模块是Spring Web应用程序开发堆栈的一部分,其中包括Spring MVC。
  • 春季DAO:
    弹簧 中的DAO(数据访问对象)支持主要用于使用JDBC,Hibernate或JDO等技术来标准化数据访问工作。
  • 春季语境:
    该软件包建立在bean软件包的基础上,以增加对消息源和Observer设计模式的支持,以及应用程序对象使用一致的API获取资源的能力。
  • 春季网 MVC:
    这是为Web应用程序提供MVC实现的模块。
  • 弹簧芯:
    的   核心  package是Spring框架中最重要的组件。
    该组件提供了依赖注入功能。 豆 Factory提供了一种工厂模式,该模式将依赖关系(如对象的初始化,创建和访问)与实际程序逻辑分开。
 弹簧 框架架构
弹簧 框架架构

4.什么是Spring中的依赖项注入(IOC)?

依赖注入(也称为控制反转模式)的基本概念是您不创建对象,而是描述应如何创建它们。你不’将您的组件和服务直接用代码连接在一起,但是描述配置文件中的哪些组件需要哪些服务。然后由一个容器(在Spring框架中为IOC容器)负责将其全部连接起来。
即,在应用IoC时,对象会在创建时由一些协调系统中每个对象的外部实体赋予它们相关性。即,将依赖项注入到对象中。因此,IoC意味着关于对象如何获得对协作对象的引用的责任倒置。

5.在Spring中注入依赖的方法有哪些?

在Spring中有两种方法进行依赖注入。

6.春天的豆是什么?

由Spring IOC容器管理的普通POJO类称为Spring 豆 。它是Spring应用程序的核心部分。
例:
1
2
3
4
5
6
 
< ID =“ countryBean” =“ 组织 .arpit.java2blog.Country”>
      < 属性 名称 =“国家的名字” = “印度” />
      < 属性 名称 =“首都” 参考 =“ CapitalBean”/>
</>      
 

7.如何在应用程序中配置Spring?

有3种方法可以做到这一点。

  • 基于XML的配置
  • 基于Java的配置
  • 基于注释的配置。

8.什么是基于Spring XML的配置?

在基于Spring XML的配置中,您可以在XML文件中定义所有依赖项。您可以在XML文件中用标记定义所有bean,并使用此XML文件读取所有依赖项。
例如 :
示例ApplicationContext.xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<! - ? XML文件 ="1.0" 编码方式 = “ UTF-8” ? - >
<? XML文件 ="1.0" 编码方式 = “ UTF-8” ?>
< 豆子 XML文件 ns ="http://www.springframework.org/schema/beans"
XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" XML文件 ns : 哎呀 ="http://www.springframework.org/schema/aop"
si :schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
  < ID =“ 国家 豆 ” =“ 组织 .arpit.javapostsforlearning.Country”>
      < 属性 名称 =“国家的名字” = “印度” />
      < 属性 名称 =“首都” 参考 =“ CapitalBean”/>
  </>
  < ID =“ CapitalBean” =“ 组织 .arpit.javapostsforlearning.Capital”>
      < 属性 名称 =“ capitalName” = “德里” />
  </>
</ 豆子 >
 

您可以使用以下方法读取此ApplicationContext.xml:
1
2
3
 
 ApplicationContext appContext = ClassPathXmlApplicationContext(“ ApplicationContext.xml”);
 

9.什么是基于Spring 爪哇 的配置?

在基于Spring 爪哇 的配置中,仅使用java类注入所有依赖项。您可以使用@Configuaration和@Bean批注进行操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
组织 . Arpit . 爪哇 2blog . 配置 ;
进口 组织 . Arpit . 爪哇 2blog . 模型 . 国家 ;
进口 组织 .弹簧框架. 语境 .注解.;
进口 组织 .弹簧框架. 语境 .注解.组态;
 
@组态
上市 应用配置 {
 
@( 名称 =“ countryObj”)
上市 国家 getCountry()
{
   返回 国家 ( “印度” );
}
 
}
 

上面的文件等效于下面的spring配置xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<? XML文件 ="1.0" 编码方式 = “ UTF-8” ?>
< 豆子 XML文件 ns ="http://www.springframework.org/schema/beans"  
     XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance"  
     XML文件 ns : 语境 ="http://www.springframework.org/schema/context"  
     si :schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
< 语境 :注解- 配置 />  
< ID =“ countryObj” =“ 组织 .arpit.java2blog.Country” >
  < 属性 名称 =“国家的名字” = “印度” />
</>
</ 豆子 >
 

为了使bean到达应用程序上下文,您需要使用以下代码

1
2
3
4
 
ApplicationContext appContext = AnnotationConfigApplicationContext(应用配置.);
国家 countryObj = ( 国家 ) appContext. getBean (“ countryObj”);
 

你可以参考 基于Spring 爪哇 的配置 完整的例子。

10.什么是基于Spring注释的配置?

您也可以通过注释而不是XML配置来进行依赖项注入。您可以使用注释定义bean自动装配。您可以使用@ Component,@ Repository,@ Service和@Controller批注在Spring应用程序中配置bean。
默认情况下,注释接线未打开。您需要使用打开它:

1
2
3
4
5
6
 
<? XML文件 ="1.0" 编码方式 = “ UTF-8” ?>
<>
< 语境 :注解- 配置 />  
</ 豆子 >
 

一旦放置了上面的代码,就可以开始在class,fields或方法上使用批注。

11. 弹簧 中有哪些不同的bean作用域?

春季支持5种类型的bean范围

  • 单身人士  –在每个Spring IoC容器中将单个bean定义的作用域限定为单个对象实例。
  • 原型 –每次请求时返回一个新的bean实例
  • 请求  –每个HTTP请求返回一个bean实例。
  • 会议  –每个HTTP会话返回一个bean实例。
  • globalSession –每个全局HTTP会话返回一个bean实例。

12. 弹簧 中bean的默认范围是什么?

单例是Spring中bean的默认范围。如果想要不同的作用域,则必须显式更改bean的作用域。这是春季问问最多的问题之一。

13.什么是ApplicationContext,其功能是什么?

ApplicationContext是用于向应用程序提供配置信息的中央接口。

ApplicationContext提供以下功能:

  • 从ListableBeanFactory继承的Bean工厂方法。这样可以避免应用程序使用单例。
  • 解决消息的能力,支持国际化。继承自MessageSource接口。
  • 以通用方式加载文件资源的能力。继承自ResourceLoader接口。
  • 发布事件的能力。实现必须提供注册事件侦听器的方法。
  • 从父上下文继承。在后代上下文中的定义将始终优先。例如,这意味着整个Web应用程序都可以使用单个父上下文,而每个servlet都有其自己的子上下文,该子上下文独立于任何其他servlet的子上下文。

14.您如何在春季进行注射收集?

您可以使用list和value标记初始化集合,如下所示:
1
2
3
4
5
6
7
8
9
10
11
 
< ID =“ 国家 豆 ” =“ 组织 .arpit.java2blog.Country”>
  < 属性 名称 =“ 清单 OfStates”>
   < 清单 >
    <> 喜马al尔 印度 </>
    <> 西方 孟加拉 </>
    <> 古杰拉特 </>
   </ 清单 >
  </ 属性 >
</>
 

15.在春季,bean自动装配是什么意思?

在Spring框架中,您可以使用自动装配功能自动对bean进行接线。要启用它,只需定义“ 汽车线 的属性。Spring容器可以  汽车线  不使用和的协作bean之间的关系,这有助于减少XML配置的数量

1
2
3
 
< ID =“ countryBean” =“ 组织 .arpit.java2blog.Country” 汽车线 = “按名字” >
 

16. 弹簧 支持哪些不同的自动装配模式?

有以下自动装配模式,可用于指示Spring容器使用自动装配进行依赖项注入。
没有:
默认情况下,没有自动接线,就像通过settor方法发布的依赖注入中所做的那样,通过“ 参考 ”属性手动进行设置。
按名字:
按属性名称自动布线。 弹簧 容器查看在其上的bean的属性  汽车线  attribute is set to  按名字  在XML配置文件中,它尝试将其与xml配置文件中的bean名称匹配。
按类型:
按属性数据类型自动装配。 弹簧 容器查看在其上的bean的属性  汽车线  attribute is set to  按类型  在XML配置文件中。然后,如果它的属性  类型  与配置文件中的bean名称之一完全匹配。如果存在多个这样的bean,则会引发致命异常。
建设者:
构造函数参数中的byType模式。
自动侦测:

弹簧 首先尝试使用autowire通过 建设者,如果它不起作用,Spring会尝试自动接线  按类型 .

17.什么是Spring AOP?

面向方面的编程是类似于面向对象编程的编程范例。面向对象编程的关键单元是类,而AOP的关键单元是Aspect。 Aspect使事务管理等关注点模块化,它跨多个类和类型。它也被称为横切关注点。

18. 春季AOP中的方面,建议,连接点和切入点是什么?

方面:  Aspect是一个实现关注点的类,该关注点跨越了不同的类,例如日志记录。这只是一个名字。
联合点: 是方法的执行等程序的执行的要点。在Spring AOP中,连接点始终代表方法的执行。
忠告:  方面在特定连接点处采取的行动。例如:在执行getEmployeeName()方法之前,放置日志记录。所以在这里,我们先使用建议。

切入点: 切入点是一个表达式,它决定在匹配的联合点执行建议。 弹簧 默认使用AspectJ切入点表达语言。

19. 弹簧 中的@Qualifier注释是什么?

XML配置中可以有多个相同类型的bean,但是您只想自动装配其中的一个,因此@Qualifier通过确切声明要自动装配的bean,消除了@Autowired造成的混乱。
您可以阅读有关 弹簧 @Qualifier批注 更多细节。

20. 弹簧 中的@Required注释是什么?

该注释仅表明必须在配置时填充受影响的bean属性:通过bean定义中的显式属性值或通过自动装配。如果尚未填充受影响的bean属性,则容器将引发异常;否则,容器将抛出异常。这允许急切和显式的失败,避免以后再发生NullPointerExceptions等。
假设您有一个非常大的应用程序,并且由于未注入所需的依赖项而收到NullPointerExceptions,那么很难找出问题所在,因此此注释可帮助我们调试代码。
您可以阅读有关 春天@必需注释 更多细节。

21.在Spring中如何处理循环依赖?

参考 弹簧 中的循环依赖 更多细节。

22.将原型bean注入单例bean时会发生什么?你能解释一下这种行为吗?

推荐我 在春季将原型bean注入单例bean 更多细节。

那’关于春季面试问题的全部内容。

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  •  爪哇 面试题
    22 May

    爪哇 面试题

    我写了很多Java面试问题,这是所有Java面试问题的索引。我将继续在此帖子中添加更多面试问题。核心Java核心Java面试问题此列表包括前50个核心Java面试问题。无论您是新手还是经验丰富的程序员,此面试问题都将[…]

  •  爪哇 中的扎实原则
    11月9日

    爪哇 中的SOLID原理

    在这篇文章中,我们将看到Java中的5条SOLID原则。罗伯特·C·马丁(Robert C. Martin)提出了五项面向对象的设计原则,并使用了缩写S.O.L.I.D。该首字母缩写词的每个字母都讨论Java的原理。当您结合使用S.O.L.I.D的所有原理时,对您来说会变得更加容易[ …]

  •  爪哇 面试问题2年经验
    11月8日

    爪哇 面试问题2年经验

    在本文中,我们将看到2到3年的Java面试问题。这些是新生(0-3年的经验)最常被问到的面试问题。这个问题清单将帮助您破解Java面试。在此之前,我已经分享了详细的答案,您可能会发现它也很有帮助。一世 […]

  •  爪哇 面试问题5年经验
    11月8日

    爪哇 面试问题5年经验

    在这篇文章中,我们将看到5到6年的Java面试问题。当您有5年Java开发人员的经验时,您需要对集合,多线程概念有很好的了解。如果您正在寻找以下查询,那么这篇文章也将为您提供帮助。 爪哇 面试题[…]

  •  爪哇 棘手的面试题
    9月11日

    爪哇 技术面试题

    在这篇文章中,我们将看到Core 爪哇 访谈中要求的顶级Java技术面试。我涵盖了很多关于Java编程的面试问题。这是您可能会发现有用的其他Java面试问题的列表。核心Java面试题Java 馆藏面试题Java 串 面试题OOPs 爪哇 中的面试题[…]

  • 春季靴面试问题
    8月06

    春季靴面试的前15个问题

    在这篇文章中,我们将看到15个有关Spring Boot面试的热门问题及其答案。如果您想了解更多有关Spring Boot的信息,可以阅读Spring Boot教程。如果您正在寻找以下查询,那么这篇文章也将为您提供帮助。 春季靴面试问题3年的经验Spring Boot面试[…]

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇 2博客