Spring3.0&SpringMVC

来源:互联网 发布:中央电视10套网络直 编辑:程序博客网 时间:2024/06/07 20:01

1.谈谈你对Spring的理解

     IOC(inversion of control):控制反转

     1概念:控制权有对象本身转向容器,由容器根据配置文件去创建实例并创建各个实例之间的依赖关系

     2 核心:bean工厂,在Spring中bean工厂创建的各个实体称作bean

    当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

 你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

   AOP(Aspect-oriented Programming):面向切面编程

     1 代理的两种方式 :

                                            针对每个具体类分别写代理类/针对一个接口编写一个代理类

                   动态代理:针对一个方面写一个InvocationHandler,然后借用jdk反射包中的Proxy类为各种接口动态生成相应的代理类。

     2 AOP的主要原理:动态代理

  关于容器的理解

 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的

 Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(主要是通过反射机制)。

Spring已经用过一段时间了,感觉Spring是个很不错的框架,内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的区创建、调用对象,Spring就是在运行时,跟xmlSpring的配置文件来动态的创建对象,和调用对象里的方法。

Spring工作原理还有一个核心就是Aop这个就是面向切面的编程,可以为某一类对象进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的模块)从而达到对一个模块扩充的功能这些都是通过配置类达到的。

   相关链接:http://blog.chinaunix.net/uid-24343152-id-3038046.html

2.Spring的工作原理

   1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。

  2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.

  3.DispatcherServlet请请求提交到目标Controller

  4.Controller进行业务逻辑处理后,会返回一个ModelAndView

  5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象

  6.视图对象负责渲染返回给客户端。

   相关链接:http://blog.csdn.net/dyllove98/article/details/8586312

3.谈谈你对Spring的理解

spring是是一个开源框架,是为了解决企业应用程序开发,功能如下

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

  相关链接:http://zhidao.baidu.com/question/1795939896877354867.html?qbl=relate_question_0

0 0
原创粉丝点击