spring面试题

Spring 面试题

IOC和DI是什么?

ioc控制反转,di依赖注入。将创建对象的权力交给ioc容器,再通过依赖注入的方式,实现对象间的解耦合。

spring ioc的理解,及其初始化过程?

ioc:将类提前配置在beans.xml文件中,需要对象时,不再通过new创建,而是通过容器获取,将类的控制权交给spring容器,就是控制反转。
在获取ApplicationContext实例对象过程中会创建一个spring容器,该容器会读取配置文件beans.xml,并统一管理该文件中的bean实例对象,如果要获取实例,使用getBean()方法就可以了。

Spring bean的生命周期?

对bean进行实例化,将值和bean的引用注入到bean对应的属性中。如果bean中实现aware等接口,就调用相应的方法。直到bean准备就绪,就可以被应用程序使用,bean也将一直存在在应用上下文中,直到该应用上下文被销毁。

ApplictionContext上下文的生命周期?

创建ioc容器,读取配置文件到容器中,实例化bean,设置属性值。

BeanFactory和FactoryBean的区别?

两者都是接口,BeanFactory为ioc容器的实现提供规范,是管理bean的工厂,FactoryBean通过装饰者模式和简单工厂模式为ioc容器中bean的实现提供更加灵活的方式,是bean。

BeanFactory和ApplicationContext的区别?

BeanFactory:是spring中比较原始的Factory,只提供了实例化对象和拿对象的功能。在启动的时候不会去实例化bean,只有从容器中拿的时候才会去实例化,优点是节约内存,缺点是速度慢。
ApplicationContext:继承了BeanFactory,是spring里更高级的容器,提供了更多有用的功能。比如aop,访问资源文件。在bean启动的时候把所有bean都实例化,也可以通过配置让bean延迟实例化。优点是系统的运行速度快,尽早发现系统中的配置问题。缺点是耗内存。

Spring Aop 的实现原理?

采用jdk动态代理模式来实现aop机制。将切面使用动态代理的方式动态织入到目标对象,形成一个代理对象。目标对象如果没有实现代理接口,那么spring会采用CGlib来生成代理对象,该代理对象是目标对象的子类。目标对象如果是final,又没有实现接口,就不能运用aop。

Spring 是如何管理事务的,事务管理机制?

Spring 管理事务是通过事务管理器实现的,主要包括三个接口:
TransactionManager:事务管理器。用于对事务的回滚、提交、获取事务状态。
TransationDefinition:事务定义信息。用于定义事务相关的属性,给事务管理器使用。比如获取事务隔离级别、获取超市时间、是否只读。
TransationStatus:事务具体运行状态。事务管理过程中,每个时间点事务的状态信息。
事务管理机制包括声明式事务和编程式事务。声明式事务通过在方法上加声明注解的方法,将事务操作交给spring。编程事事务主要是通过代码按照逻辑分成单元提交。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值