# cloud-coder-starter
**Repository Path**: cloud-coder/cloud-coder-starter
## Basic Information
- **Project Name**: cloud-coder-starter
- **Description**: java基础组件沉淀
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-06-16
- **Last Updated**: 2025-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### cloud-coder-starter 介绍
# 使用方式:在maven/settings.xml中添加如下配置
2061427-release-0CAuV7
packages aliyun
https://packages.aliyun.com/5fe9d2295d32b3c1e44e7c41/maven/2061427-release-0cauv7
*
# 引入依赖
com.geline
cloud-coder-core
1.3.5
com.geline
cloud-coder-starter-easytrans
1.3.5
com.geline
cloud-coder-starter-mybatisplus
1.3.5
1. **cloud-coder-core**
基础工具包,包括基础service定义(会话,消息,加解密,日志)
2. **cloud-coder-starter-mybatisplus**
mybatis-plus组件扩展
- `@UniqueKey` 唯一索引检验注解
- `@LogCarry` 关联表日志写入注解
- `@QueryModel` 单表查询条件注解
- `@One2Many` One2ManyFactory支持外键表添加、更新、关联查询
- `@ExtractTable, @ExtractKey, @ExtractStatus` 支持子表字段更新,自动回填计算主表字段
- `@ExtractAfter` 支持当前表字段更新后,自动计算更新其它表字段
3. **cloud-coder-web**
web拦截器组件
- `@RepeatSubmit` 防重复提交:用于POST添加接口
- `@ValidBefore` 方法前置检验注解
```java
@ValidBefore(handler = ValidSecretTypeHandler.class, errorMsg = "您的密级权限过低,不允许查看!")
```
4. **cloud-coder-starter-easytrans**
数据翻译组件
- `@DictType` 枚举字典定义
- `@TransEnum` 枚举字典翻译
- `@TransDict` 字段翻译(支持枚举字典+字典表)
- `@TransSQL` sql翻译(支持基础字段,对象,列表对象)
- `@TransEntity` Entity翻译
- `@TransTable` 表外键翻译
- `@DSMasked` 数据脱敏
```java
// 枚举字典定义
@DictType(value = "project_status", label = "应用状态")
public enum ProjectStatus implements IDict {
no("未开始"), go("开发中"), check("验收中"), over("完成");
private String label;
ProjectStatus(String label){
this.label = label;
}
@Override
public String getLabel() {
return label;
}
@Override
public Object getValue() {
return name();
}
}
@Getter
@Setter
public class ProjectDTO implements Serializable {
private String projectStatus;
@TransDict(dictType = "project_status", source = "projectStatus")
private String projectStatusDesc;
private String dataBaseId;
@TransSQL(value = "select db_title from sdk_data_base where id=#{dataBaseId}")
private String dbTitle;
@TransSQL(value = "select id, db_code, db_title from sdk_data_base where id=#{dataBaseId}")
private DataBase dataBase;
@TransSQL("select db_code from sdk_data_base where id=#{dataBaseId}")
private List codeList;
@TransSQL(sqlIdInMapper = "selectDataBaseList")
private List dataBaseList;
@TransTable(table="t_tenant", foreignKey = "tenant_id")
private TenantVO tenantVO;
@DSMasked(strategy = SensitiveStrategy.USERNAME)
private String username;
@DSMasked(strategy = SensitiveStrategy.PASSWORD)
private String password;
@DSMasked(strategy = SensitiveStrategy.BANK_CARD)
private String bankCard;
@DSMasked(strategy = SensitiveStrategy.ID_CARD)
private String idCard;
@DSMasked(strategy = SensitiveStrategy.EMAIL)
private String email;
// 生成2个属性:phone为脱敏值,phoneOrigin为原值
@DSMasked(strategy = SensitiveStrategy.PHONE, findOrigin = true)
private String phone;
@DSMasked(strategy = SensitiveStrategy.CODE)
private String code;
@ApiModelProperty(value = "总成本")
@TransField(handler = CostPerM2Handler.class)
private BigDecimal costAmountTotal;
}
```
5. **cloud-coder-starter-uploadfile**
文件上传组件
6. **cloud-coder-starter-sqlbackup**
数据库备份组件
支持 mysql, kingbase, shentong 数据库备份
```java
// 开启数据库备份
@EnableDatabaseBackup
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```