当前位置: 代码迷 >> Java面试 >> Java面试-Spring技术要义-Spring概述
  详细解决方案

Java面试-Spring技术要义-Spring概述

热度:39   发布时间:2016-04-17 00:13:32.0
Java面试--Spring技术要点--Spring概述

1、Spring的好处/特点

  •   轻量:Spring是轻量的,基本的版本大约2MB。
  •   控制反转(IOC):Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
  •   面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
  •   容器:Spring包含并管理应用中对象的生命周期和配置。
  •   MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
  •   事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
  •   异常处理:Spring提供方便的API把具体技术相关的异常(比如由JDBC,Hibernateor JDO抛出的)转化为一致的unchecked 异常。

2、Spring主要模块组成

  •   Core module
  •   Bean module
  •   Context module
  •   Expression Language module
  •   JDBC module
  •   ORM module
  •   OXM module
  •   Java Messaging Service(JMS) module
  •   Transaction module
  •   Web module
  •   Web-Servlet module
  •   Web-Struts module
  •   Web-Portlet module

3、Spring IOC/DI(控制反转/依赖注入)

简单的理解就是,原先将本程序中所使用到的对象,的生命周期交给容器去维护和管理。这就是IOC。SpringIOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

对于DI的理解是,本类中所使用到的其他对象,在程序代码中只需要声明一下,相关实例化的工作交给了容器,容器会在运行期new出相应的对象,并赋值给程序代码。这个过程类似于注入的过程。

http://blog.csdn.net/it_man/article/details/4402245

4、ApplicationContext的实现

  • FileSystemXmlApplicationContext:此容器从一个XML文件中加载beans的定义,XMLBean 配置文件的全路径名必须提供给它的构造函数。
  • ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。
  • WebXmlApplicationContext:此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。

5、BeanFactory和ApplicationContext的区别

  1. BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。而ApplicationContext则相反,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。
  2. ApplicationContext建立在BeanFactory之上,并增加了其他的功能,比如更容易同SpringAOP特性整合, 消息资源处理(用于国际化),事件传递,以声明的方式创建ApplicationContext,可选的父上下文和与应用层相关的上下文(比如WebApplicationContext),以及其他方面的增强。

表格 1  BeanFactory和ApplicationContext对比

特性

BeanFactory

ApplicationContext

Bean实例化/装配

Yes

Yes

自动BeanPostProcessor注册

No

Yes

自动BeanFactoryPostProcessor注册

No

Yes

便捷的MessageSource访问(i18n)

No

Yes

ApplicationEvent发送

No

Yes

http://blog.csdn.net/hi_kevin/article/details/7325554

6、获取ApplicationContext的方式

  1. 直接new出ApplicationContext
  2. 通过Spring提供的工具类获取ApplicationContext对象(WebApplicationContextUtils)
  3. 继承自抽象类ApplicationObjectSupport。说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContextcontext)方法将ApplicationContext 对象注入。
  4. 继承自抽象类WebApplicationObjectSupport。说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
  5. 实现接口ApplicationContextAware

说明:实现该接口的setApplicationContext(ApplicationContextcontext)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext对象注入。

http://www.blogjava.net/Todd/archive/2010/04/22/295112.html






  相关解决方案