spring

Spring面试题整理

1.什么是Spring框架,Spring框架有哪些主要模块。
2.使用Spring框架能带来哪些好处?
3.什么是控制反转(IOC)、是什么是依赖注入?

ios: 把对象的创建、初始化、销毁交给spring来管理,而不是开发者控制,实现控制反转(这是我对ios的理解);

依赖注入是控制反转(ioc)的基础,依赖注入实现的方式有三种:

1、构造器注入(推荐使用)

2、Setter方法注入

3、接口注入

其次Spring中的org.springframework.beans包和org.springframework.context包

构成了Spring框架ioc容器的基础。

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

ApplicationContext接口对BeanFactory进行了扩展,在BeanFactory的基础上添加了其他功能,比如与Spring的AOP更容易集成等。

BeanFactory是Ioc容器的具体实现,用来包装和管理前面提到的各种bean.

BeanFactory接口是SpringIoc容器的核心接口

4.BeanFactory和ApplicationContxt有什么区别?

BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了bean的定义,以便在接收到客户端请求时将对应的bean实例化。

BeanFactory还能在实例化对象的时生成协作类之间的关系,此举将Bean自身与bean客户端的配置中解放出来

BeanFactory还包含了bean生命周期的控制,调用客户端的初始化方法和销毁方法。

从表面上看,application context如同bean factory一样具有bean定义、bean关联关系的设置,根据请求分发bean的功能,但applicationcontext在此基础上还提供了其他的功能:

1、提供了支持国际化的文本信息

2、统一的资源文件读取方式

3、已在监听器中注册的bean事件

5.Spring有几种配置方式

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

1、基于xml的配置

2、基于注解的配置

3、基于java的配置

6.请解释SpringBean的生命周期

Spring Bean的生命周期简单易懂。在一个bean实例被初始化时需要执行一系列的初始化操作以达到可用的状态

同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。

Spring bean factory负责管理在spring容器创建的bean的生命周期。Bean的生命周期由两组回调方法组成。

1、初始化之后调用的回调方法

2、销毁之前调用的回调方法

Spring框架提供了四种方式来管理bean的生命周期事件:

1、initalizingBean和DisposableBean回调接口

2、针对特殊行为的其他Aware接口

3、Bean配置文件中的custom init()方法和destroy()方法

4、@PostConstruct和PreDestroy组件方式

7、SpringBean的作用域之间有什么区别?

Spring容器中的bean可以分为5个范围。所有范围的名称都是字说明的。

1、singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中 只有一个bean的实例,单例的模式由bean factory自身来维护。

2、prototype:原型范围与单例范围相反,为每一个bean请求提供一个实例

3、request:在请求bean范围内会为每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。

4、session:与请求范围类型,确保每个session中有一个bean的实例,在session过期后,bean会随之失效

5、global-session:global-session和Portlet应用相关。当你的应用部署在protlet容器中工作时,它包含很多portlet。如果你想要的声明让所有的portlet公用全局的存储变量的话,那么这个全局变量需要存储在global-session中

全局作用域域Servlet中的session作用域效果相同。