compliance/assets/images/井筒/后端开发指南.txt
2025-06-19 18:33:03 +08:00

424 lines
11 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

开发指南-后端
2024年7月4日创建
1.环境介绍
1.应用对外域名https://www.dev.ic
deas.cnpo
2.应用线上部署环境是瑞道云容器平台,点击这里访问
3.JDK版本要求jdk17点击这里下载
5.本地开
需要将kt-co
nect启动才可以访问数据库
redis等线上中间件同时也可以访问线上部署的微
服务。下图是访问应用的3种方式第一种适合服务间相互调用第二种适合前后端联调第三种适合最终用户
瑞道云(容器平台)
例后端应用
本机开发环境
端道云域名网关
2.私服地址
<settings
(mlns:xsi="http: //www.w3.org/2001/XMLSch
xsi:schema
<mirrorof>cent
梦想云Maven私服地址https://dev.epaio/nexus/content/groups/public/
阿里云Maven私服地址https:/maven.aliyun.com/repository/public/
3.常用服务
名称
地址
说明
配置中心服务
htt:/springclo
配置中心地址
http://gitea:3000
配置中心存储仓库,存放配置文件
注册用户需要开启二次认证
网关地址
http://gateway:4000
这个是在kt-connect环境下访问的地
外部网关地址
4.脚手架
4.1生成项目代码
etype:generate
Di
DarchetypeGroupId=cnpc.ide
DarchetypeArtifactId=ideas-arch
8 -DartifactId=example \
chetype:
nerate\
-Dgrou
on=1.0.0
-Scan应及时修改为正确的mapper目录如下图
4.2非WEB运行
一些应用只是用于执行一次性任务不需要启动WEB监听端口则可以将Appjava的代码更改为如下格式
cnpc.ideas.example.serv
vice.ConfigService;
org.springframework.boot.au
11 @slf4j
public static void main(String[] args) [
15
ApplicationType.NONE);
builder.run(args);
19
ru(写t业逻
Foo() ;
5.输入输出
5.1响应结构
code"0// 业务响应码。默认值为0表示正常。
处理成功"
"data"null // 业务数据
5
5.2响应编码
值说明
示例
请求被正常处理
{"code": 0,"me
"操作处理成功","data":null
通用异常值,在异常信息没有被明确归类
"这是一个测试错误""data"nul
5.3分页请求
参数名称
参数值
pageNo
页码从1开始
pageSize
每页显示记录数
是否检索总记录数,如果是 false则 totai 为 null在全量同步数据时建议设置为 false以加快检索速度
5.4分页响应
'message""操作处理成功"//结果描述信息
从1开始
pageSize": 2,
total"3220//总记录数
List":[]//
业务数据
6.命名规则
6.1后端应用
假如要开发后端 example 应用那么命名中涉及到数字编码、应用名称、系统编码、lapi 前缀
分类
应用名称
示例应用后端
说明
开发平台
应用编码
4201example
数字编码+应用名称,数字编码规则参考
系统
ideas2
开发的应用所属子系统的编码
负戴名称
mx-4201example
格式为:系统编码+应用编码
瑞道云-服务名称
mx-4201example
服务名称不带数字
后端服务访问地址
http://mx
微服务互访使用的地址,本质就是通过
4201example:8080/api/example
k8s的serviceName访问
前端用户访问地址
http://wv
路径格式:"/api"+服务名称
应用
路径前缀
代码仓库
ttp://der
示例后端
下载4201example.zip
代码示例中有两个分支:
分支
此分支不依赖外部服务,可以下载后可以直接启动,以便快速体验代码效果
6.2前端应用
假如要开发前端example 应用
那么命名中涉及到:数字编码、应用名称、系统编码、-front后缀
分类
应用名称
示例应用后端
说明
开发平台
应用编码
5201example-front
数字编码规贝
参考目工程命名规范
系统编码
ideas2
开发的应用所属子系统的编码
瑞道云
负载编码
mx-5201example-front
格式为:系统编码+应用编码
服务名称
服务名称不带数字
用户访问地址
http://www.
路径格式:服务名称去除-front 后缀
路径前缀
应用
/example/*
路径格式:服务名称去除-front 后缀
代码仓库
->协同开发子系统->应
01exampl
6.3单体应用
当前的“单体应用”是相对狭义的,指的是前后的都在一
体应用的命名规则如下:
分类
应用名称
示例应用后端
说明
应用编码
4201example-app
后缀必须是-app 结尾,
数字编码规则
参考目工程命名规范
系统编码
开发的应用所属子系统的编码
瑞道云
负载编码
ideas2-5201example-app
格式为:系统编码+应用编码
服务名称
example-app
服务名称不带数字
用户访问地址
http://ww.c
pc/exmaple
路径格式:服务名称去除-app 后缀
?
应用
路径前缀
路径格式:服务名称去除-app 后缀
后端地址通常为:/example/api/**
前端地址通常为:/exam
6.4 GIT
在简单场景下可以只有两个分支develop和 master
以下是环境和代码分支的关系,制品晋级方式参考目应用部署手册:
环境
分支
说明
开发环境
develop、feature/xxx、 hotfxxx
不稳定分支
测试环境
master、标签 V1.x.X
稳定分支或标签
预生成环境
从测试制品库晋级过来
生产环境
从预生产制品库晋级过来
全局配置
6.5数据库
1.常用的数据库字段命名参考
字段编码
字段类型
描述
create_ time
update_time
timestamp
##date
date
日期相关命名格式yy-M-dd
create_user_id
varchar
创建用户Id
varchar
创建用户姓名
Varchar
创建用户##
p!lisn-ajepdn
varchar
最后更新用户Id
aweu lasn-alepdn
varchar
最后更新用户姓名
###JasnTajepdn
varchar
最后更新用户##
2.常用的字段取值参考
字段名
字段类型
参考值
启用状态
int
启用=0
字典启用状态
停用=1
管理员类型
int
应用管理员=0
文件服务管理员类型
系统管理员=1
6.6 Redis命名
Redis 的键必须添加应用前缀标识,比如 4205govern 项目要缓存用户信息到 Redis则命名规则如下:
应用名
Redis 的键前缓
键示例
4205govern:
4205gov
Isers:(用户ID}
6.7API参数命名
参数名
说明
##Like
模糊查询时使用,比如 nameLike
keyword
进行多个字段检索时使用比如使用keywrd同时检索名称和编码
7.配置中心
详细说明文档 目udp-config-encryption-startr 配置文件加解密(已经合并到web-starter)
7.1配置中心
配置中心的技术栈是 springcloudconfig+git使用这个技术栈的原因可以参考目配置中心选型项目使用配置中
心进行开发,需要以下步骤:
1启动安全桌面
2.启动 kt-connect
3.访问配置中心 http://itea:3000
4.注册账号
7.2加密数据
: static void main(String[] args) throw
String base64Key = "xx"
System.out.println(m
7.3密文配置
配置文件中心配置加密后的敏感
包取
q:5672
wpe :aweu
password: KLldCipher[这里写密文]
7.4 IDEA配置
将密钥信息添加到 JVM Options中 格式为: -Dkld.cofigalgrithm=sma -Dkld.configkey×x
在启动kt-connect 后可以从系统环境变量KLD_cONFIG_KEY中获取到 kld.config.key
密钥配置方式如下图:
1编辑配置
spriAgtiv
3.输入密钥信息
Run/Debug Configurations
ApP
CApP
Run on:
Local
Manage trgets.
8.健康检查
健康检查一般用于应用滚动更新,具体配置参考 目容器探针设计
9.常见问题
9.1 容器中访问HTTPS域名
1. 针对 springboot 项目,将此 Dockefile文件放到项目根目录下
注意:执行 import-jidk-certs.sh 必须使用 root 权限,不要添加 USER app 指令
a. JDK17
ENV JAVA_OPTS=-XX:+UseCon
ENV
RUN_ARGS="
duse
6.JKD8
ENV JAVA_OPTS=
ENV RUN_ARGS=I
COPY ta
CMD ["sh",
-c 'java -jar ${
2编辑负载配置添加JDK_CERT_URLS变量指向证书下载地址多个地址使用逗号分割比如
JDKCERU=htp//:0/share/mis/deapccrt,t:/s:0/share/is/devidea
9.2 本地开发访问HTTPS域名
1.下载以下三个证书文件到任意目录
集成开发应用支撑系统的HTTPS域名证书
说明
dev.ideas.cnpc.crt
这个是开发环境的证书
ideas.cnpc.crt
测试、预生产、生产环境使用的是同一
_.ideas.cnpc.crt
这个是MinlO的证书
2.在证书下载目录下执行导入命令-JDK17
"d:\jdki7\lib\security\cacerts" -storepass changeit -noprompt
4导入集成开发应用支撑系统的测试、预生产、生产环境证书
5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt
"d:\jdk17\lib)security\cacerts" -storepass changeit -noprompt
注意1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录
2、d:jidk17是本文档编辑人本机的JDK地址实际操作时使用你本地的JDK地址
3、JDK 密钥库口令是 changeit
3. 在证书下载目录下执行导入命令 - JDK8
"d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt
4#导入集成开发应用支撑系统的测试、预生产、生产环境证书
5 keytool -import -alias ideas.cnpc -file "ideas.cnpc.crt
"d:\jdk8\jre\lib\security\cacerts" -storepass changeit -noprompt
注意1、执行命令前检查环境变量Path中需包含你现使用idk的bin目录
2、d:Vidk8是本文档编辑人本机的JDK地址实际操作时使用你本地的JDK地址
3、libsecuritylcacerts 是jdk下的jre目录不是单独的jre
4、JDK 密钥库口令是 changeit
9.3 git报ssl错误
?
禁用 ssl验证
9.4变更git地址
通过更新配置文件变更指向的远程git仓库地址
第一
种方式:
第二种方式:通过命令行变更
9.5配置数据库schema
pguse
nection-in
Kt-connect 启动后,会自动将配置文件密钥信息写入到系统环境变量中,变量名称是:
KLD_CONFIG_ALGORITHM、KLD_CONFIG_KEY变量写入后IDE需要重启才能读取到环境变量如果不想重
启,可以将密钥信息添加到 JVMOptions 中,格式为:-Dkld.cofigalgorthm=x-Dkd.configkey=x如下图
编辑配置
?
2.显示 VM Optoins 输入框
√ Active
3.输入密钥信息
ApP
Local
Manage targets.
Build and run
9.7 redis 连接失败
在jvm中设置kt的socks代理连接依然失败
springcloud中的redis默认不会使用jvm中设置的代理需要手动读取以下是4201example 中配置的代码
io.lettuce
io.lettuce.core
11l import javanet.InetSocketAddess;
16
@0verride
public void customize(ClientResources.Builder builder)
socksProxyPort = Integer
channel.pipeline();
pipeline .addFirst(handler);
需要在 pom.xml中添加这个依赖Socks5ProxyHandler在此依赖中
versi
5 </dependency>
9.8找不到这样的主机redis或sql-proxy
连接了kt并在jvm中设置了kt的socks代理但是启动时找不到这样的主机redis或sql-proxy
修改本地host文件增加以下配置
211.96.135.145 sql-pre
9.9 信任 nexus 证书
安全桌面访问htps:/dvcloud.cnpc:8081私服下载不了jar包的一个解决办法自己测试有效
注意:所有操作都在安全桌面外操作!!
(1首先浏览器访问htp:/devcloud.cnpc:8081参看下图点击浏览器安全设置图标找到【导出】按钮导出
devcloud.cnpc.crt证书文件
(2将证书导入jdk的证书库
会提示输入密钥库
默认changeit
会提示是否信任此证书,输入是
9.10 maven 忽略https验证
环境变量方式
命令行方式
9.11maven构建报错
可以尝试以下几个步骤修复:
1.通过环境变量忽略 https 验证
2.设置.m2/settings.xml 文件
3.在命令行执行n
nvn cleanpackage-e-U
ERROR
import POM:The
o.prc
ERROR
org.sp
for cnpc.kld.fr
10.相关文档
目后端高码框架用户手册说明文档
目应用部署手册
目工程命名规范
回工程台账
目数据变更通知服务
建设中。。。
建设中。
建设中。.。
建设中。。。
反向引用(2)@
本文引用(9)
需求调研清单
需求调研清单
?