学习 - 我大Spring框架之Dispatch 2

本文章不借鉴任何其他文章里的资料,仅为源码的直接解读和理解

这章接着写Dispatch

Dispatch继承了BindingProvider类

BindingProvider类的直接描述:“BindingProvider接口提供‘绑定协议’(protocol binding)的访问,上下文对象的请求,响应消息的处理”


 

结合上一篇文章,隐隐可以看出binding不是绑定的意思,应该把它当做一个对象!我们不应该但从字面意思去片面理解,可在往后的解读当中深入理解它。

以下这些都是BindingProvider内置的常量

public static final String USERNAME_PROPERTY =

            "javax.xml.ws.security.auth.username";

public static final String PASSWORD_PROPERTY =

            "javax.xml.ws.security.auth.password";

public static final String ENDPOINT_ADDRESS_PROPERTY =

            "javax.xml.ws.service.endpoint.address";

public static final String SESSION_MAINTAIN_PROPERTY =

            "javax.xml.ws.session.maintain";

public static final String SOAPACTION_USE_PROPERTY =

            "javax.xml.ws.soap.http.soapaction.use";

public static final String SOAPACTION_URI_PROPERTY =

            "javax.xml.ws.soap.http.soapaction.uri";

另外说一下,接口中可以有成员变量,但是只能是public static final类型,同时也因此必须初始化。

以下是其方法和该方法的描述:

Map<String, Object> getRequestContext();

“这是用于处理request消息的上下文。”

返回值是个Map,也就是一个context(所谓上下文)。它的作用  是用来初始化  request的内部信息的context  的。

Map<String, Object> getResponseContext();

“The context that resulted from processing the latest response messages.”

我的理解是:这个Map(上下文)得自最新处理的响应消息。至于是来自response,还是用来处理response,目前还不确定。但是该context是跟最新的response有关的。

Binding getBinding();

“The Binding for this binding provider.”

因为BindingProvider是个接口,所以内容来自于其实现类,该接口规定实现类必须返回这个Binding接口(这个Binding还是个接口)或者该接口的实现类。也就是说,要实现必须要实现对Binding的提供,那么我们可以通过这点去了解Binding的实现类都有哪些,都是怎么做的

 public <T extends EndpointReference> T getEndpointReference(Class<T> clazz);

“返回与BindingProvider的实例相关的EndpointReference。返回的该实例将是clazz类型”

参数clazz:指定类型的EndpointReference必须被返回

返回:EndpointReference 的目标端点与BindingProvider 的实例相关。必须是clazz类型的

抛出:WebServiceException  如果clazz类不支持该实现(implementation)。

抛出:java.lang.UnsupportedOperationException  如果BindingProvider使用了XML/HTTP binding。

  另外,EndpointReference 是个抽象类

这个 BindingProvider  接口还是十分迷糊的。重点就在binding这个接口的作用上

猜你喜欢

转载自lcl088005.iteye.com/blog/2157788