后端开发部署指南
服务开发流程
一、新建gitlab代码仓
1. 仓库规范(推荐):
注意
前后端:分Back-end(后端代码)和Fron-end(前端代码)
微服务名称:微服务名称
信息
2. 仓库代码推送步骤
Git 全局设置
创建一个新仓库
推送现有文件夹
推送现有的 Git 仓库
二、项目搭建
1. 统一版本管理
1. 项目pom.xml
<parent>
<groupId>com.das</groupId>
<artifactId>dependency</artifactId>
<version>3.0.0</version>
</parent>
2. maven配置
3. 直接依赖脚手架
2. 创建业务模块
3. 依赖脚手架功能
3.1 基础包
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>commons-base</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
常用公共类 | 用处 |
---|---|
R | 供Feign统一返回使用以及controller错误返回信息包装 |
ResultCode | 常用API返回对象,目前code和httpstatus绑定不能随意添加 |
GlobalRequestConstant | 全局请求信息相关key常量 |
ResultConstant | R 字段对应字符常量 |
GlobalInstanceContext | 用来存储全局唯一实例!多个线程可共享, 主要用来解耦Spring |
GlobalRequestDTO | 全局请求参数 |
TaskProgressDTO | 任务实体类,进度条 |
TaskStatusEnum | 进度条统一状态 |
ApplicationEnum | 应用类型枚举 |
UserGroupTagType | 用户组类型 |
UserTagEnum | 用户标签枚举 |
ApiException | 自定义API异常 |
BizException | 业务异常 |
AuthorizationDataUtil | 请求参数传递辅助类 |
3.2 spring封装包
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>web-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
提供功能:包括异常拦截、统一返回类R、ip工具、Spring工具、servlet工具、解析jwt载荷工具等
使用说明
类 | 说明 |
---|---|
IpUtils | ip相关工具类,可以获取请求真实IP地址 |
JwtBuilder | jwt工具类,可以构建jwt,目前载荷内容包括租户,用户id,姓名,是否是服务,flag |
JwtInfoUtils | jwt工具类,获取全局请求参数以及进行鉴权处理 |
ModelUtil | 基本模型数据填充工具类 |
PageUtils | 分页工具类 |
SecureUtils | 加解密工具类 |
SensitiveInfoUtil | 脱敏工具类,目前只有手机号脱敏方法 |
ServletUtils | 客户端工具类 |
SpringUtils | spring工具类,方便在非spring管理环境中获取bean |
SqlUtil | sql操作工具类 |
StringUtils | 字符串工具类,包括判空 去空格 截取等字符串相关操作 |
TimeZoneUtils | 时区时间转换,针对前端时间以及后端时间响应进行转换 |
ActionResult | 返回工具类,统一使用该类进行请求结果返回 |
CustomMsgResultCode | 参数校验抛出的异常,可自定义错误描述的ResultCode |
注解 | 说明 |
---|---|
@EnableJwtInfoAnnotation | 在启动类或者配置类上加上注解标识需要解析jwt信息的功能,因为放在common包里,避免只需要引入common其他功能但是不需要jwt解析功能 |
@Sensitive | 用于controller层或者service层的方法上面,判断返回数据是否需要脱敏相关处理 |
@SensitiveInfo | 用于属性上面,判断相关数据是否需要加密或脱敏相关处理 |
@SensitiveInput | 用于controller层或者service层的方法上面,判断入参数据是否需要加密处理 |
@WebLog | 用于方法上面,描述日志信息 |
@AllowableValues | 状态值校验工具 |
@XssCheckValid | Xss校验 |
在需要分页的地方使用工具类方法返回一个Page对象
com.das.libcore.web.utils.PageUtils的bulidPage(Integer pageNo, Integer pageSize)
参数说明:
pageNo 页码(不传有默认值1)
pageSize 页量(不传有默认值10)
3.3 自动生成代码包
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>das-generator</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
1.
2.
3.
参数 | 说明 |
---|---|
String url | 数据库连接url |
String username | 数据库用户名 |
String password | 数据库密码 |
String schema | 指定的schema |
String tableName | 表名(多个用逗号分隔) |
String moduleName | 模块名(用于controller上面的api拼接的module,可以为空) |
String middlePath | 中间路径 文件生成的路径是定位在项目根路径的,需要指定到具体模块下的路径 |
String packagePath | 包路径 文件生成路径 /项目路径/模块路径/包路径/ |
String tablePrefix | 忽略表前缀 例如表为das_xxx 不想要加上 das_ 则值为 das_ |
String tableSuffix | 忽略表后缀 例如表为xxx_info 不想要加上 _info 则值为 _info |
4.
3.4 规则引擎
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>drools-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
类 | 说明 |
---|---|
RuleHelper | 可检测规则语法规范,获取指定的规则session |
RuleLoader | 规则加载器,动态加载规则 |
RuleInfoModel | 规则信息实体类 |
3.5 全球化
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>globalization-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
3.6 Kafka服务
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>kafka-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
首先加上注解@EnableKafka("alarmEventConsumer") 开启kafka,EnableKafka中的value是group,但是KafkaListenter中的group优先级更高
3.7 mqtt
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>mqtt-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
使用说明
类 | 说明 |
---|---|
MsgHandle | 使用订阅功能时需要继承实现的接口类,重写MsgHandle#handleMsg方法 |
MqttConfiguration | mqtt配置类 |
MyMqttCallback | mqtt回调 |
MqttService | 对mqttClient简单封装,其中包括连接方法connect(),设置连接参数setMqttConnectOptions(),发布消息publish(),订阅主题subscribe(),取消订阅主题cleanTopic() |
直接在需要的地方注入mqttService即可,但是如果需要使用订阅功能需要实现MsgHandler并通过mqttService.setMsgHandle(MsgHandle msgHandle)在容器启动完成注入到mqttService中如下:
3.8 pulsar消息队列
<dependency>
<groupId>com.das.libcore</groupId>
<artifactId>pulsar-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
功能简介
关于topic的前置说明:
使用说明
1. 引入pulsar-spring-boot-starter核心包依赖
2. 配置
认证方式:
3. 发送消息
1.
2.
配置文件:conf/broker.conf、conf/standalone.conf
配置项: topicLevelPoliciesEnabled=true
systemTopicEnabled=true