spring面试准备

 spring是一个轻量级的IOC(控制反转)和AOP(面向切面)的容器框架;

1.特点:轻量(从大小和开销量两方面都是轻量的),控制反转(通过IOC促进了松耦合,具体来说就是在spring中创建被调用者的工作不再由调用者来完成),面向切面,容器(spring包含并管理应用对象的配置和生命周期);框架(将简单的组件配置,组成复杂的应用)

总的来说:核心技术就是IOC和AOP  作用在数据访问层  可以整合其他开源的框架

2.好处:

  (1).使用spring的IOC容器,将对象之间的依赖关系交给spring,降低组件之间的耦合性,让我们更专注于逻辑

  (2).可以提供众多服务,事务管理等

  (3).AOP的很好支持,方便面向切面编程

  (4).对主流的框架提供了很好的集成支持

  (5).spring DI机制降低了业务对象替换的复杂性

  (6).spring属于低侵入,代码污染极低

  (7).spring的高度可开放性,并不强势依赖于spring;咱们用的时候可以自由选择spring框架的部分或全部。

3.spring的核心类(bean的调用方式)

  beanFactory:创建一个新的实例,可以实现单例模式;

  beanWrapper:提供同一的get及set方法

  ApplicationConetext:提供框架的实现,包括BeanFactory的所有功能

4.spring常用类和接口有哪些

  A.ApplicationContextAware接口:当一个类需要获取applicationContext实例,需要让该类实现这个接口;

  B.applicationListener接口:当需要监听自定义事件时,可以新建一个applicationListener接口的类,并将该类配置到spring容器中

5.spring事务的原理:

  事务管理的方式:声明型和编程型 推荐使用声明事务

  声明型事务管理的优势:代码中无需关于关注事务逻辑,让Spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换。

6.什么是IOC,什么是DI

  区别:IOC是个更宽泛的概念,DI是更具体的。 DI是从应用程序的角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;IOC从容器的角度去描述,由容器反向的向程序注入应用程序所需要的外部资源

7.bean注入属性的几种方式

  bean:Spring容器初始化对象

  1、接口注入

  2、构造器注入

  3、setter方法注入

8.AOP的作用是什么

  面向切面编程提供另一种角度来思考程序结构,通过这种方式弥补了面向对象编程的缺点,除了类以外,它还提供了切面。

  允许用户自定义切面,AOP的对spring的一种增强

9.介绍一下Spring框架中bean的生命周期和作用域

  1、在配置文件中定义;2、两种初始化方式(1)在配置文件中指定init-method 属性来完成(2)实现一个org.springframwork.beans.factory.InitializingBean接口 

  3、三种方式调用bean的实例 4、bean销毁 (1)配置文件指定destroy-method属性 (2)B.实现org.springframwork.bean.factory.DisposeableBean接口

  五大作用域:

      1、singleton:IOC容器中只会存在一个共享实例,并且对所有BEan的请求,只要ID相匹配,就会返回同一实例

      2、prototype:每次对该BEan的请求,都会创建一个新的实例

      3、request:一个HTTP请求中,一个bean定义对应一个实例;该作用 域仅在基于web的Spring ApplicationContext情形下有效。 

        4、session:一个HTTP Session中,一个bean定义对应一个实例;该作用 域仅在基于web的Spring ApplicationContext情形下有效。 

        5、global session:在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于 web的Spring ApplicationContext情形下有效。

  

原文地址:https://www.cnblogs.com/gyc1996/p/7486265.html