竹直心虚乃吾友,水淡性泊是我师!
山不厌高,水不厌深
Google
 
posts - 3,comments - 1,trackbacks - 0

先看代码
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虚拟机 阅读(443) | 评论 (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虚拟机 阅读(361) | 评论 (0)编辑 收藏
切面(aspect)

切面是你要实现的交叉功能。

连接点(joinpoint)

连接点是应用程序执行过程中插入切面的地点。

通知(Advice)

通知切面的实际实现

切入点(pointcut)

切入点定义了通知应该应用在哪些连接点。

引入(Intrduction)

引入允许你为已经存在的类添加新方法和属性。

目标对象(Target)

目标对象是被通知的对象。

代理(Proxy)

代理是将通知应用到目标对后创建的对象。

织入(weaving)

织入是将切面应用到目标对象从而创建一个新的代理对象的过程。

版权说明:http://www.blogjava.net/wiki

posted @ 2007-01-09 11:16 JAVA虚拟机 阅读(960) | 评论 (1)编辑 收藏