ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring面试专题

2021-12-05 19:03:57  阅读:151  来源: 互联网

标签:ApplicationContext 专题 Java 框架 BeanFactory 对象 Spring 面试


1. 什么是Spring框架?Spring框架有哪些主要模块?

Spring框架是一个为Java应用程序的开发提供了一个综合、广泛的基础性支持的Java平台。

Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。

Spring框架采用的是分层架构,一系列功能被分为20个模块。这些模块主要是:Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web、AOP(面向切面编程)、Instrumentation(工具)、Messaging(消息传递)和Test(测试)。

2. 使用Spring框架能带来哪些好处?

1. 非侵入式设计

2. 方便解耦,简化开发

3. 支持AOP

4. 支持声明式事务处理

5. 方便程序的测试

6. 方便集成各种优秀框架

7. 降低Java EE API的使用难度

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

控制反转:在编程中,当我们用到一个对象时,首先需要主动创建它,但是在大型项目中,大家分工合作,也许我们要用到的对象对应的类还没有被编写出来,我们肯定没办法new出来,这个时候就有了Spring框架,对象交给Spring来创建(我们不关心也没有能力关心是否已经有了对应的类和Spring是否能够创建我们需要的对象),我们直接从Spring容器中获取对象使用即可,此前对象是由我们主动创建的,我们具有控制权,但使用Spring框架之后我们将创建对象的权力交给Spring,也就意味着我们对对象的控制权反转给了Spring,这就是控制反转。

控制未反转:由我们(开发者)来控制对象的创建。

控制反转:我们将创建对象的控制权交给了Spring,由Spring来控制对象的创建。

依赖注入:当我们需要用到一个对象的时候,从Spring容器中获取,这对于Spring来讲,就是将程序所依赖的对象注入到程序中,这就是所谓的依赖注入。

在Java中依赖注入有三种实现方式:

1. 构造器注入

2. Setter方法注入

3. 接口注入

4. 请解释下Spring框架中的IoC?

Spring中的org.springframework.beans包和org.springframework.context包构成了Spring框架IoC容器的基础。

BeanFactory接口提供了一个先进的配置机制,使得任何类型的对象的配置成为可能。

ApplicationContext接口对BeanFactory(是一个子接口) 进行了拓展,在BeanFactory的基础上添加了其他功能,比如与Spring的AOP更容易集成,也提供了处理message resource的机制(用于国际化)、事件传播以及应用层的特别配置,比如针对Web应用的WebApplicationContext。

org.springframework.beans.factory.BeanFactory是Spring IoC容器的具体实现,用来包装和管理前面提到的各种bean。BeanFactory接口是Spring IoC容器的核心接口。

5. BeanFactory和ApplicationContext有什么区别?

BeanFactory:是Spring中比较原始,比较古老的Factory。以为比较古老,所以BeanFactory无法支持spring插件。例如:AOP、web应用等功能。

ApplicationContext是BeanFactory的子类,基本上代替了BeanFactory的工作。以一种更面向框架的工作方式以及上下文进行分层和实现继承,并在这个基础上对功能进行扩展:

1. MessageSource:提供国际化的消息访问。

2. 资源访问:URL和文件等。

3. 事件传递。

4. Bean的自动装配。

5. 各种不同的应用层的Context实现。


区别

1. 如果使用ApplicationContext,如果配置的Bean是Singleton(单例),那么不管你有没有或想不想用它,它都会被实例化。好处是可以预先加载,坏处是浪费内存。

2. BeanFactory,当使用BeanFactory实例化对象时,配置的Bean不会被马上实例化(懒着加载),而是等到你使用bean的时候才会被实例化。好处是节约内存,坏处是速度比较慢。多用于移动设备的开发。

3. 没有特殊要求的情况下,应该使用ApplicationContext完成。以为BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更加丰富的功能。

6. Spring有几种配置方式?

将Spring配置到应用开发中有三种方式:

         1. 基于XML的配置

2. 基于注解的配置

3. 基于Java的配置

标签:ApplicationContext,专题,Java,框架,BeanFactory,对象,Spring,面试
来源: https://www.cnblogs.com/bordersmoved/p/15646471.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有