先看代码
core包中的SpringVersion.java
public class SpringVersion {
/**
* Return the full Spring version string.
* @see java.lang.Package#getImplementationVersion
*/
public static String getVersion() {
return SpringVersion.class.getPackage().getImplementationVersion();
}
}
SpringVersion.class.getPackage().getImplementationVersion();
这一句会返回什么信息呢?我使用得是Spring1.2.6,返回如下信息.
-----
1.2.6
-----
那么这个信息又是从什么地方来的呢?
这个就要说到产品的发布.产品发布会打成一个JAR包.JAR除了包含.class文件外,还包括一个META-INF文件夹.它下面又包含了一个MANIFEST.MF的文件.它包含了这个产品的产品信息.现在看看这个文件里都有什么吧
-----------------------
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_05-b05 (Sun Microsystems Inc.)
Implementation-Title: Spring Framework
Implementation-Version: 1.2.6
Spring-Version: 1.2.6
-----------------------
现在知道getImplementationVersion()是从哪里取东东了吧:)
posted @
2007-07-23 13:34 JAVA虚拟机 阅读(444) |
评论 (0) |
编辑 收藏
对于现有较成熟的Model-View-Control(MVC)框架而言,其解决的主要问题无外乎下面几部分:
1. 将Web页面中的输入元素封装为一个(请求)数据对象。
2. 根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。
3. 逻辑处理单元完成运算后,返回一个结果数据对象。
4. 将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。
现在来看看Spring MVC是怎么做的。
一 总体概述
Spring MVC的核心组件是DispatcherServlet,该类既作为整个MVC框架的前端控制器,同时又负责调动框架中其它组件协同工作完成对一个请求的处理。处理一个请求的大致流程如下:
1 请求首先由DispatcherServlet截获,DispatcherServlet把请求交给HandlerMapping,寻找相应的逻辑处理单元。
2 HandlerMapping根据请求的不同,返回一组逻辑处理单元。在Spring MVC中,逻辑处理单元一般是由0个或多个interceptor和一个controller组成的。
3 DispatcherServlet首先判断返回的逻辑处理单元中是否有interceptor,如果有,则首先依次调用interceptor的方法。如果没有,则执行controller的方法。
4 DispatcherServlet通过HandlerAdapter来执行controller的方法,返回一个包含了模型和视图的对象ModelAndView。使用HandlerAdapter的目的是因为Spring MVC并不关心controller实现了什么样的接口,只要提供相应的HandlerAdapter,Spring MVC就知道该如何执行controller。
5 如果之前返回的逻辑处理单元包含interceptor,DispatcherServlet又依次(和刚才调用interceptor的顺序相反)调用interceptor的方法。
6 DispatcherServlet把返回的ModelAndView对象交给ViewResolver,通过ViewResolver返回一个合适的View对象。
7 最后DispatcherServlet调用View对象的render方法把模型中的数据和视图融合,返回给用户。
posted @
2007-07-13 11:27 JAVA虚拟机 阅读(363) |
评论 (0) |
编辑 收藏