在这篇文章中,我们将看到Spring访谈访谈问题。如果您是Java / j2ee开发人员,并且有一定的经验 春天,您将面对Spring面试问题。
在这里,我分享了一些重要的春季面试问题。
温泉面试问题
1.什么是Spring框架?
春季框架 是一个开放源代码框架,旨在解决企业应用程序开发的复杂性。 Spring框架的主要优点之一是其分层体系结构,该体系结构使您可以选择使用哪个组件。 Spring的主要模块是Spring核心,Spring AOP和Spring MVC。
2. Spring框架的主要特征是什么?
-
Lightweight:
在尺寸和透明度方面,spring是轻量级的。 spring框架的基本版本约为1MB。而且处理开销也可以忽略不计。 -
控制反转(IOC):依赖注入或控制反转的基本概念是,程序员无需创建对象,而只需描述应如何创建对象即可。
-
面向方面(AOP):
春天支持面向方面的编程。面向方面的编程 指将辅助功能或支持功能与主程序隔离开的编程范例’的业务逻辑。 AOP是用于分离横切关注点的有前途的技术,这在面向对象的编程中通常很难做到。应用程序’这样就增加了模块性,并且维护变得非常容易。 -
Container:春天包含并管理应用程序对象的生命周期和配置。
-
MVC Framework:春天带有基于核心Spring功能构建的MVC Web应用程序框架。该框架可通过策略界面进行高度配置,并包含JSP,Velocity,Tiles,iText和POI等多种视图技术。
-
交易管理:春天框架为事务管理提供了通用的抽象层。这使开发人员可以添加可插入的事务管理器,并易于在不处理低级问题的情况下划分事务。
-
JDBC异常处理:春天的JDBC抽象层提供了有意义的异常层次结构,从而简化了错误处理策略。与Hibernate,JDO和iBATIS集成:Spring提供与Hibernate,JDO和iBATIS的最佳集成服务
3.解释Spring的主要模块?
- 春季AOP:
春天的关键组成部分之一是 AOP框架。 AOP在Spring中使用:- 提供声明性企业服务,尤其是代替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实现的模块。 - 弹簧芯:
这 核 包是Spring框架中最重要的组件。
该组件提供了依赖注入功能。 BeanFactory提供了一种工厂模式,该模式将依赖关系(如对象的初始化,创建和访问)与实际程序逻辑分开。
即,在应用IoC时,对象会在创建时由一些协调系统中每个对象的外部实体赋予它们相关性。即,将依赖项注入到对象中。因此,IoC意味着关于对象如何获得对协作对象的引用的责任倒置。
5.在Spring中注入依赖项有哪些方法?
6.春天的豆是什么?
1 2 3 4 5 6 |
<豆角,扁豆 ID=“ countryBean” 班级=“ org.arpit.java2blog.Country”> <财产 姓名=“国家的名字” 价值=“印度”/> <财产 姓名=“首都” 参考=“ CapitalBean”/> </豆角,扁豆> |
7.如何在应用程序中配置Spring?
有3种方法可以做到这一点。
- 基于XML的配置
- 基于Java的配置
- 基于注释的配置。
8.什么是基于Spring 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=“ CountryBean” 班级=“ org.arpit.javapostsforlearning.Country”> <财产 姓名=“国家的名字” 价值=“印度”/> <财产 姓名=“首都” 参考=“ CapitalBean”/> </豆角,扁豆> <豆角,扁豆 ID=“ CapitalBean” 班级=“ org.arpit.javapostsforlearning.Capital”> <财产 姓名=“ capitalName” 价值=“德里”/> </豆角,扁豆> </豆子> |
1 2 3 |
ApplicationContext appContext = 新的 ClassPathXmlApplicationContext(“ ApplicationContext.xml”); |
9.什么是基于Spring java的配置?
在基于Spring Java的配置中,仅使用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” 班级=“ org.arpit.java2blog.Country” > <财产 姓名=“国家的名字” 价值=“印度”/> </豆角,扁豆> </豆子> |
为了使bean到达应用程序上下文,您需要使用以下代码
1 2 3 4 |
ApplicationContext appContext = 新的 AnnotationConfigApplicationContext(应用配置.班级); 国家 countryObj = (国家) appContext.getBean(“ countryObj”); |
你可以参考 基于Spring Java的配置 完整的例子。
10.什么是基于Spring注释的配置?
您也可以通过注释而不是XML配置来进行依赖项注入。您可以使用注释定义bean自动装配。您可以使用@ Component,@ Repository,@ Service和@Controller批注在Spring应用程序中配置bean。
默认情况下,注释接线未打开。您需要使用打开它:
1 2 3 4 5 6 |
<?XML文件 版本="1.0" 编码方式=“ UTF-8”?> <豆角,扁豆> <语境:注解-配置/> </豆子> |
一旦放置了上面的代码,就可以开始在class,field或方法上使用批注。
11. Spring中有哪些不同的bean作用域?
春季支持5种类型的bean范围
- 单身人士 –在每个Spring IoC容器中将单个bean定义的作用域限定为单个对象实例。
- 原型 –每次请求时都返回一个新的bean实例
- 要求 –每个HTTP请求返回一个bean实例。
- 会议 –每个HTTP会话返回一个bean实例。
- globalSession –每个全局HTTP会话返回一个bean实例。
12. Spring中bean的默认范围是什么?
单例是Spring中bean的默认范围。如果想要不同的作用域,则必须显式更改Bean的作用域。这是春季问问最多的问题之一。
13.什么是ApplicationContext,其功能是什么?
ApplicationContext提供以下功能:
- 从ListableBeanFactory继承的Bean工厂方法。这避免了应用程序使用单例的需要。
- 解决消息的能力,支持国际化。继承自MessageSource接口。
- 以通用方式加载文件资源的能力。继承自ResourceLoader接口。
- 发布事件的能力。实现必须提供一种注册事件侦听器的方法。
- 从父上下文继承。在后代上下文中的定义将始终优先。例如,这意味着整个Web应用程序都可以使用单个父上下文,而每个servlet都有其自己的子上下文,该子上下文独立于任何其他servlet的子上下文。
14.您如何在春季进行注射收集?
1 2 3 4 5 6 7 8 9 10 11 |
<豆角,扁豆 ID=“ CountryBean” 班级=“ org.arpit.java2blog.Country”> <财产 姓名=“ listOfStates”> <列表> <价值>喜马al尔邦 邦邦</价值> <价值>西 孟加拉</价值> <价值>古杰拉特</价值> </列表> </财产> </豆角,扁豆> |
15.在春季,bean自动装配是什么意思?
在Spring框架中,您可以使用自动装配功能自动对bean进行接线。要启用它,只需定义“汽车线的属性。Spring容器可以 汽车线 不使用和元素的协作bean之间的关系,这有助于减少XML配置的数量
1 2 3 |
<豆角,扁豆 ID=“ countryBean” 班级=“ org.arpit.java2blog.Country” 汽车线=“按名字”> |
16. Spring支持哪些不同的自动装配模式?
春天首先尝试通过以下方式使用autowire进行布线 构造函数,如果它不起作用,Spring会尝试通过以下方式自动接线 按类型.
17.什么是Spring AOP?
面向方面的编程是类似于面向对象编程的编程范例。面向对象编程的关键单元是类,同样,AOP的关键单元是Aspect。 Aspect使事务管理等关注点模块化,它跨越了多个类和类型。它也被称为横切关注点。
18. Spring AOP中的方面,建议,连接点和切入点是什么?
切入点: 切入点是一个表达式,它决定在匹配的联合点处执行建议。 Spring默认使用AspectJ切入点表达语言。
19. Spring中的@Qualifier注释是什么?
XML配置中可以有多个相同类型的bean,但是您只想自动装配其中的一个,因此@Qualifier通过确切声明要自动装配的bean,消除了@Autowired造成的混乱。
您可以阅读有关 春天 @Qualifier批注 for more details.
20. Spring中的@Required注释是什么?
该注释仅表明必须在配置时填充受影响的bean属性:通过bean定义中的显式属性值或通过自动装配。如果未填充受影响的bean属性,则容器将引发异常;否则,容器将抛出异常。这允许急切和显式的失败,避免以后再发生NullPointerExceptions等。
假设您有一个非常大的应用程序,并且由于未注入所需的依赖项而获得了NullPointerExceptions,那么很难找出问题所在,因此此注释可帮助我们调试代码。
您可以阅读有关 春天@必需的注释 for more details.
21.您将如何在Spring中处理循环依赖关系?
参考 春天中的循环依赖 for more details.
22.将原型bean注入单例bean时会发生什么?你能解释一下这种行为吗?
推荐我在春季将原型bean注入到singleton bean中 for more details.
那’关于春季面试问题的全部内容。
您可能还喜欢: