Commit ecf301f5 by 郭旭

修改后端教案

parent 266035a4
## 后端项目代码调试
## 后端项目代码调试
#### 项目开发调试
***视频教程***
http://114.115.138.98:9497/gjjs-book/assets/videos/rear-end-debug.mp4
##### 以执行一个rule为例,讲解前端请求到后端的跟踪debug过程,供大家参考,如下图:
###### 前端请求
前端信用证开立Exteky字段输入2000,然后回车,触发executeRule事件(“didgrp.apl.pts.extkey”)到后端
![](../assets/images/hddebug0.png)
![](../assets/images/hddebug1.png)
![](../assets/images/hddebug2.png)
###### Resource打断点
后端AbstractCommonResource executeRule方法接收到请求
![](../assets/images/hddebug3.png)
###### Service打断点
resource executeRule代码执行到service层
![](../assets/images/hddebug5.png)
![](../assets/images/hddebug6.png)
###### Emitter打断点
service executeRule代码执行到emitter层处理,AbstractRuleEmitter缓存有每个rule所对应的执行方法,通过反射去找到具体对应emitter的相应方法,然后去执行该方法
![](../assets/images/hddebug7.png)
![](../assets/images/hddebug8.png)
![](../assets/images/hddebug12.png)
###### Rule层级打断点
emitter作为rule的执行入口,里面按照顺序再去执行具体的业务逻辑代码
![](../assets/images/hddebug13.png)
###### 返回结果打断点
rule执行完回到service层进行数据的赋值封装,返回给前端
![](../assets/images/hddebug14.png)
![](../assets/images/hddebug15.png)
##### 3、一个debug调试小技巧(drop frame)的使用
在调试过程中,对于之前走过的代码想重新走一遍,不用把这次请求走完然后重新触发前端调用到后端再进行调试,这样会浪费时间影响效率,可以使用drop frame按钮,让断点回到上个断点位置重新步入。
如下图,断点已经走到了AbstractRuleEmitter executeRule方法,点击drop frame按钮,断点重新回到了AbstractRouteService executeStepWithRuleList方法
![](../assets/images/hddebugdrop1.png)
![](../assets/images/hddebugdrop2.png)
#### 测试验证
##### 单元测试
com.ceb.gjjs.mda.junitTest包下有单元测试类,可以测试service层接口方法。
单元测试,测的是Service接口的方法,并没有像浏览器一样发起请求,所以是无法经过拦截器com.brilliance.mda.support.td.AuthInterceptor的,因此得事先将用户的信息添加到环境中;再就是参数输入,这里可以提前将之前在浏览器发起的请求数据保存为json文件,测试的时候就直接读取对应交易下的json文件的数据即可。
![单元测试_BeforeEach](../assets/images/单元测试_BeforeEach.png)
测试用例:
![单元测试用例](../assets/images/单元测试用例.png)
## 后端项目开发文档 ## 后端项目开发文档
...@@ -14,7 +14,7 @@ com.ceb.gjjs.mda包下 ...@@ -14,7 +14,7 @@ com.ceb.gjjs.mda包下
### 配置文件说明 ### 配置文件说明
| codeTable | 码表,select中的可选项 | | codeTable | 码表,select中的可选项 |
| ---------------- | ----------------------------------------------- | |------------------|-----------------------------|
| defaultRule | 某些情况下数据字段改变触发相关default方法的码表 | | defaultRule | 某些情况下数据字段改变触发相关default方法的码表 |
| i18n | 提示信息码表 | | i18n | 提示信息码表 |
| mapper | 获取数据库码表信息相关的mapper | | mapper | 获取数据库码表信息相关的mapper |
...@@ -98,13 +98,13 @@ gjjs-bdproject/build/VueSpring/front/frontProject/model目录下交易名的文 ...@@ -98,13 +98,13 @@ gjjs-bdproject/build/VueSpring/front/frontProject/model目录下交易名的文
具体哪一个配置文件需要根据新增交易的入口交易确定 具体哪一个配置文件需要根据新增交易的入口交易确定
![image-20230223160003227](C:/Users/17617/AppData/Roaming/Typora/typora-user-images/image-20230223160003227.png) ![image-20230223160003227](../assets/images/image-20230223160003227.png)
在SUBMENU-FILE-1这一列后面新增交易入口 在SUBMENU-FILE-1这一列后面新增交易入口
同时修改本地的rootPath(修改内容同上) 同时修改本地的rootPath(修改内容同上)
![image-20230223160907200](C:/Users/17617/AppData/Roaming/Typora/typora-user-images/image-20230223160907200.png) ![image-20230223160907200](../assets/images/image-20230223160907200.png)
#### 4.进入交易页面 #### 4.进入交易页面
...@@ -114,5 +114,12 @@ gjjs-bdproject/build/VueSpring/front/frontProject/model目录下交易名的文 ...@@ -114,5 +114,12 @@ gjjs-bdproject/build/VueSpring/front/frontProject/model目录下交易名的文
运行前端vue项目 运行前端vue项目
![front](D:\IdeaProjects\gjjs-course\assets\images\front.png) ![front](../assets/images/front.png)
选一笔数据点击处理从入口进入新增的交易
![gitfee](../assets/images/gitfee.png)
前端页面如下
![gitfee](../assets/images/gitfee.png)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment