整个流程拉通方案.docx

上传人:b****5 文档编号:6079237 上传时间:2023-01-03 格式:DOCX 页数:14 大小:319.55KB
下载 相关 举报
整个流程拉通方案.docx_第1页
第1页 / 共14页
整个流程拉通方案.docx_第2页
第2页 / 共14页
整个流程拉通方案.docx_第3页
第3页 / 共14页
整个流程拉通方案.docx_第4页
第4页 / 共14页
整个流程拉通方案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

整个流程拉通方案.docx

《整个流程拉通方案.docx》由会员分享,可在线阅读,更多相关《整个流程拉通方案.docx(14页珍藏版)》请在冰豆网上搜索。

整个流程拉通方案.docx

整个流程拉通方案

 

流程拉通方案

 

文档变更记录

序号

变更(+/-)说明

作者

版本号

日期

批准

1

流程拉通方案

方浩

1.0

2016.8.23

2

1.引言

1.1编写目的和范围

宇信emp集成dubbo,把各个业务做成接口通过dubbo对外提供服务。

对于开发人员此文档作为开发规范,在了解整个流程的情况下,在指定的路径包下进行编码开发。

对于业务人员帮助熟悉理解整个流程,更好的完成业务接口对接。

2.整体设计

 

2.1Web容器加载dubbo启动类

Tomcat启动时读取配置文件web.xml,web.xml所在目录:

/cmismd/WebContent/WEB-INF/web.xml;

在web里增加servlet

ProviderInit

com.yucheng.cmis.dubbo.start.Provider

6

类Provider init()方类启动dubbo

2.2Dubbo生产接口

生产接口流程图:

 

Dubbo启动时加载参数配制:

applicationContextService.xml所在目录:

/cmismd/src/main/config/applicationContextService.xml

参数解析:

dubbo:

application:

提供方应用信息,用于计算依赖关系

dubbo:

registry:

使用注册中心暴露服务地址

dubbo:

protocol:

用dubbo协议在端口暴露服务

dubbo:

service:

声明需要暴露的服务接口

bean:

接口实现类

每开发一个接口需要在配制文件applicationContextService.xml把接口注册到zookeeper示例如下:

Demo:

生产接口开发目录结构:

Demo:

服务接口类:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/service

定义接口示例:

ApplyNextTimeDubboService

packagecom.yucheng.cmis.dubbo.service;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeReqMsgBO;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeRespMsgBO;

/**

*

申请授信时间接口:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicinterfaceApplyNextTimeDubboService{

/**

*再次申请授信时间

*/

publicApplyNextTimeRespMsgBOqueryApplyNextTime(ApplyNextTimeReqMsgBOapplyNextTimeReqMsgBO)throwsException;

}

服务接口实现类:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/service/impl

接口实现类示例:

ApplyNextTimeDubboServiceImpl

packagecom.yucheng.cmis.dubbo.service.impl;

importjava.sql.Connection;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.HashMap;

importjava.util.Map;

importjavax.sql.DataSource;

importmons.lang.time.DateUtils;

importmon.utils.StringUtils;

importponent.factory.ComponentFactory;

importponent.factory.EMPFlowComponentFactory;

importcom.ecc.emp.core.Context;

importcom.ecc.emp.jdbc.ConnectionManager;

importcom.yucheng.cmis.dao.SqlClient;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeReqMsgBO;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeRespMsgBO;

importcom.yucheng.cmis.dubbo.service.ApplyNextTimeDubboService;

importcom.yucheng.cmis.retailloan.businessflow.lcapplLimit.domain.LcApplLimit;

/**

*

申请授信时间接口实现:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicclassApplyNextTimeDubboServiceImplimplementsApplyNextTimeDubboService{

privateConnectionconn;

privateDataSourcedataSource;

/**

*再次申请授信时间实现方法

*/

@SuppressWarnings({"unchecked","rawtypes"})

publicApplyNextTimeRespMsgBOqueryApplyNextTime(ApplyNextTimeReqMsgBOapplyNextTimeReqMsgBO)

throwsException{

ApplyNextTimeRespMsgBOresponse=newApplyNextTimeRespMsgBO();

if(applyNextTimeReqMsgBO!

=null){

StringidNo=applyNextTimeReqMsgBO.getIdNo();//证件号码

StringidType=applyNextTimeReqMsgBO.getIdType();//证件类型

StringloanType=applyNextTimeReqMsgBO.getLoanType();//额度品种

//判断参数是否为空(默认为空)

if(StringUtils.isBlank(idNo)||StringUtils.isBlank(idType)||StringUtils.isBlank(loanType)){

//查询条件其中为空的情况

response.setNextTime(0L);

thrownewException("参数不为空");

}else{

Contextcontext=null;

try{

context=((EMPFlowComponentFactory)ComponentFactory.getComponentFactory("CMISBiz")).getContext(null,"rootCtx");

//初始化数据库连接

dataSource=(DataSource)context.getService("dataSource");

this.conn=ConnectionManager.getConnection(dataSource);

Mapmap=newHashMap();

map.put("idNo",idNo);

map.put("idType",idType);

map.put("loanType",loanType);

//查询数据库

LcApplLimitlimit=(LcApplLimit)SqlClient.queryFirst("queryLcApplLimitForSeq",map,conn);

SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

//判断是否存在该数据

if(limit!

=null){

StringlastTime=limit.getLastChgDt();//获取最后修改时间

Datedate=DateUtils.addDays(format.parse(lastTime),100);

response.setNextTime(date.getTime());

Stringd=format.format(date.getTime());

System.out.println("FormatToString(Date):

"+d);

//返回的是最后修改的时间+阀值(p_limit_typ这表中的某个字段)

}else{

//不存在改数据时,返回当前时间

Datedate=newDate();

response.setNextTime(date.getTime());

Stringd=format.format(date.getTime());

System.out.println("FormatToString(Date):

"+d);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

if(this.conn==null){

this.conn.close();//关闭连接

}

}

}

}

returnresponse;

}

}

服务接口javabeen:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/ob

javabeen示例:

ApplyNextTimeReqMsgBO

packagecom.yucheng.cmis.dubbo.ob;

importjava.io.Serializable;

/**

*

申请授信时间接口javabeen:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicclassApplyNextTimeReqMsgBOimplementsSerializable{

privatestaticfinallongserialVersionUID=1L;

privateStringidType;//证件类型

privateStringidNo;//证件号码

privateStringloanType;//额度类型

publicStringgetIdType(){

returnidType;

}

publicvoidsetIdType(StringidType){

this.idType=idType;

}

publicStringgetIdNo(){

returnidNo;

}

publicvoidsetIdNo(StringidNo){

this.idNo=idNo;

}

publicStringgetLoanType(){

returnloanType;

}

publicvoidsetLoanType(StringloanType){

this.loanType=loanType;

}

publicstaticlonggetSerialversionuid(){

returnserialVersionUID;

}

}

2.3Dubbo消费接口

 消费接口流程图:

 

消费方调用接口时加载配制文件:

applicationContextConsumer.xml所在目录:

/cmismd/src/main/config/applicationContextConsumer.xml

参数解析:

dubbo:

application:

消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样

dubbo:

registry:

使用注册中心暴露发现服务地址

dubbo:

reference:

生成远程服务代理,可以像使用本地bean一样使用demoService

每调用一个接口需要在配制文件applicationContextConsumer.xml进行配制:

Demo:

 

消费接口开发目录结构:

 

Demo:

消费共用接口类:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/service

定义接口示例:

ApplyNextTimeDubboService

packagecom.yucheng.cmis.dubbo.service;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeReqMsgBO;

importcom.yucheng.cmis.dubbo.ob.ApplyNextTimeRespMsgBO;

/**

*

申请授信时间接口:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicinterfaceApplyNextTimeDubboService{

/**

*再次申请授信时间

*/

publicApplyNextTimeRespMsgBOqueryApplyNextTime(ApplyNextTimeReqMsgBOapplyNextTimeReqMsgBO)throwsException;

}

消费接口调用类:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/connect

消费接口调用示例:

ApplyNextTimeDubboConsumer

packagecom.yucheng.cmis.dubbo.connect;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

importcom.yucheng.cmis.dubbo.service.ApplyNextTimeDubboService;

importcom.yucheng.cmis.dubbo.util.DubboSpringUtil;

/**

*

dubbo接口调用测试类:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicclassApplyNextTimeDubboConsumer{

publicstaticvoidmain(String[]args)throwsException{

ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(

newString[]{""});

context.start();

ApplyNextTimeDubboServiceservice=(ApplyNextTimeDubboService)DubboSpringUtil.getInstance().getBean("applyNextTimeDubboService");

//具体调用方法

}

}

消旨接口共用javabeen:

目录:

/cmismd/src/main/java/com/yucheng/cmis/dubbo/ob

javabeen示例:

ApplyNextTimeReqMsgBO

packagecom.yucheng.cmis.dubbo.ob;

importjava.io.Serializable;

/**

*

申请授信时间接口javabeen:

*@authoryusys

*@moduleIdcom.yucheng.cmis.dubbo.service

*@createDate2016-8-2310:

09:

59

*/

publicclassApplyNextTimeReqMsgBOimplementsSerializable{

privatestaticfinallongserialVersionUID=1L;

privateStringidType;//证件类型

privateStringidNo;//证件号码

privateStringloanType;//额度类型

publicStringgetIdType(){

returnidType;

}

publicvoidsetIdType(StringidType){

this.idType=idType;

}

publicStringgetIdNo(){

returnidNo;

}

publicvoidsetIdNo(StringidNo){

this.idNo=idNo;

}

publicStringgetLoanType(){

returnloanType;

}

publicvoidsetLoanType(StringloanType){

this.loanType=loanType;

}

publicstaticlonggetSerialversionuid(){

returnserialVersionUID;

}

}

 

3.其它项目调用接口服务

其它项目调用接口,开发时直接共用的接口包和javabeen,然后如消费接口一样在配制调用接口。

具体开发过程和2.3Dubbo消费接口一致。

上线时把共用接口和共用javabeen打成jar包形式使用。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1