java面试题之spring篇

1.Spring是什么?作用是什么?

Spring是一个轻量级的JavaEE框架,它主要解决企业应用中的复杂性问题。Spring框架有三个核心部分:IoC容器、AOP和数据访问/集成层。Spring中的IoC容器提供了一种对象创建和对象之间关系管理的机制,以实现松散耦合和可扩展性。AOP提供了一种很好的方式来实现横向关注点的处理,如事务管理,安全检查,缓存等。数据访问/集成层则提供了许多针对不同数据持久化技术的实现,比如JDBC,ORM和NoSQL。

2.你对IoC(控制反转 Inversion of Control)是怎么理解的?

IoC是一种设计思想,通过将对象之间的依赖关系交给容器来管理,从而实现松散耦合。在Spring中,IoC容器扮演了一个中心角色,负责创建对象,装配对象之间的依赖关系,并管理它们的整个生命周期。IoC还提供了一些高级功能,如AOP和事件驱动等,可以进一步增强应用程序的可维护性和可扩展性。

3.什么是AOP(面向切面编程 Aspect Oriented Programming)?

AOP是一种编程范式,它能够在程序运行期间动态地将代码切入到原有代码的流程中,从而实现横向关注点的处理,如日志记录、事务管理和安全检查等。在Spring中,AOP是通过代理模式来实现的,在创建Bean时为Bean生成一个代理对象,代理对象能够拦截指定方法的调用,并在执行前或执行后执行特定操作。

4.Spring中Bean之间的依赖关系是怎样的?

在Spring中,Bean之间的依赖关系主要通过构造函数注入、Setter方法注入和自动注入来实现。构造函数注入是通过Bean的构造方法注入其他Bean作为参数来实现;Setter方法注入是通过Bean的Setter方法来注入其他Bean;自动注入则是通过IoC容器在Bean创建时自动发现并注入其他Bean,可以通过设置@Autowired或@Resource注解来完成。

5.Spring框架中的单例模式是怎样实现的?

在Spring中,默认情况下,所有的Bean都是单例的。当IoC容器创建一个Bean时,它会缓存该Bean的实例,并在后续请求中返回相同的实例。这种机制可以提高应用程序的性能并减少内存消耗,但也需要注意线程安全和状态管理等问题。

6.Spring中的事务管理是如何实现的?

Spring通过AOP在运行时动态地将事务相关的逻辑切入到指定的方法中,从而实现事务管理。通常情况下,Spring使用声明式事务管理来管理事务。开发者可以通过@Transactional注解或XML配置文件来定义事务范围、传播属性以及回滚规则等。

7.Spring的优势是什么?

序号

好处

说明

1

轻量

Spring 是轻量的,基本的版本大约2MB。

2

控制反转

Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,<br>而不是创建或查找依赖的对象们。

3

面向切面编程(AOP)

Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

4

容器

Spring 包含并管理应用中对象的生命周期和配置。

5

MVC框架

Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

6

事务管理

Spring 提供一个持续的事务管理接口,<br>可以扩展到上至本地事务下至全局事务(JTA)。

7

异常处理

Spring 提供方便的API把具体技术相关的异常 <br>(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

8.解释一下Spring中的BeanFactory和ApplicationContext有什么区别。

一、什么是BeanFactory?

BeanFactory是Spring框架的最底层接口,是Spring框架的基础设施,里面包含了各种对于Bean的定义,读取Bean的配置文档,管理Bean的加载、实例化,控制Bean的生命周期,维护Bean之间的依赖关系。
通俗的讲,BeanFactory最最典型的功能:getBean,BeanFactory帮助我们创建对象,我们通过getBean从而去拿到创建完成的对象,而不是自己手动去new。(如下图, 很多getBean方法)
表面上BeanFactory只能getBean,实际上,控制反转、基本的依赖注入、直到Bean的生命周期的各种功能都由它的实现类提供

二、什么是ApplicationContext?

ApplicationContext是BeanFactory的子接口,由BeanFactory派生而来,通常成为Spring上下文,具有BeanFactory的基本功能。大概理解为BeanFactory有的,ApplicationContext都有(如下图)。
此外,ApplicationContext扩展了BeanFactory接口的功能
国际化
通配符方式获取一组 Resource 资源
整合 Environment 环境(能通过它获取各种来源的配置信息)
事件发布与监听,实现组件之间的解耦

三、BeanFactory与ApplicationCo
  • 14
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨会停rain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值