学习 - 我大Spring框架之Dispatch 2

7 篇文章 0 订阅

 

 

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

 

这章接着写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这个接口的作用上

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值