定义一个存储路由策略信息映射关系的对象继承IPolicyData。
public class RoutePolicyData implements IPolicyData {}
例如:定义一个map存储<service_url(ESB对外提供访问地址),DETECT_WSDL_URL(服务提供者实际地址)>
这里也可以将DETECT_WSDL_URL 解析封装成一个ProviderURLBean,方便在中介流中给动态路由对象(HttpDynamicEndpointRef)赋值。
定义一个路由策略运行时处理实现类继承IPolicyRuntimeHandler。
public class RoutePolicyRuntimeHandler implements IPolicyRuntimeHandler {}
getOperationPolicy(T)方法主要实现根据传入参数获取返回结果。
例如在实现动态路由时,服务请求进入ESB中后,可以将service_url传入,返回DETECT_WSDL_URL。修改ESB启动加载策略数据实现类DefaultPolicyDataInit。
修改常量接口IPolicyConstants,增加路由策略常量ROUTE_POLICY_TYPE。
// 路由策略 public static String ROUTE_POLICY_TYPE = "route";
修改PolicyManageFactory。
修改DefaultPolicyDataHandler。
获取数据接口
通知接口
修改RouteUtil,从内存对象中获取路由策略信息。
页面新增、修改、删除接口服务时调用publishService服务通知server更新,传入常量“route”。