编程开发辅助
2024年12月25日大约 5 分钟编码开发调用认证OAuth2
概述
除了日常开发、环境调整以及基础设施配置外,系统中还提供了一定的辅助措施,方便开发中使用和定位信息。
[一]配置参数提示
在使用 Spring Boot 框架时,除了 Spring Boot 自身的大量配置参数外,随着功能的增多还会产生大量自定义的配置参数。
这些参数类型各异,值类型也有很大差别。即使有文档说明,使用起来也不够方便。
[1]使用方法
为了解决上述问题,Dante Cloud 提供了“配置参数”提示功能。
有了配置参数提示,在 IDE 工具中,打开服务下的 bootstrap.yml 或者 application.yml 等配置文件,直接输入一定的英文字符,就会直接显示当前服务可用的参数,以及用途解释。如下图所示:
[2]自定义方法
配置参数提示功能已经内置在系统代码之中,只要按照规范编写配置属性,新增的配置参数就会自动生成提示。
新增自定义配置参数,只需要注意以下两点:
- 正常编写配置参数定义类,并在类头上标注
@ConfigurationProperties
- 使用 Java 标准的注释格式,给每个属性编写注释。
满足以上两点,重新编译代码后,就会自动生成配置参数的提示。示例代码如下所示:
@ConfigurationProperties(prefix = CacheConstants.PROPERTY_PREFIX_CACHE)
public class CacheProperties extends CacheSetting {
/**
* 是否允许存储空值
*/
private Boolean allowNullValues = true;
/**
* 缓存名称转换分割符。默认值,"-"
* <p>
* 默认缓存名称采用 Redis Key 格式(使用 ":" 分割),使用 ":" 分割的字符串作为Map的Key,":"会丢失。
* 指定一个分隔符,用于 ":" 分割符的转换
*/
private String separator = "-";
/**
* 针对不同实体单独设置的过期时间,如果不设置,则统一使用默认时间。
*/
private Map<String, CacheSetting> instances = new HashMap<>();
public Boolean getAllowNullValues() {
return allowNullValues;
}
public void setAllowNullValues(Boolean allowNullValues) {
this.allowNullValues = allowNullValues;
}
public Map<String, CacheSetting> getInstances() {
return instances;
}
public void setInstances(Map<String, CacheSetting> instances) {
this.instances = instances;
}
public String getSeparator() {
return separator;
}
public void setSeparator(String separator) {
this.separator = separator;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("allowNullValues", allowNullValues)
.add("separator", separator)
.toString();
}
}
[二]代码打包记录查询
团队开发过程中,难免出现某次提交代码自身存在异常,测试不足就部署上线的情况。
已经编译为 jar 或者打包为镜像的应用,除了版本号和发布时间等信息以外,就只有通过开发人员调试代码才能快速定位问题。
[1]查看方式
为了可以方便更加快捷的定位问题或者了解问题的出处,Dante Cloud 在代码环境中,会将代码提交相关记录信息,在代码编译过程将其打包至服务中。相关的信息包含以下内容:
#Generated by Git-Commit-Id-Plugin
git.branch=develop
git.build.host=DESKTOP-5CBR0MD
git.build.time=2024-12-28 23\:36\:32
git.build.user.email=pointer_v@qq.com
git.build.user.name=\u7801\u5320\u541B
git.build.version=3.4.1.0
git.closest.tag.commit.count=
git.closest.tag.name=
git.commit.author.time=2024-12-23 22\:55\:52
git.commit.committer.time=2024-12-23 22\:55\:52
git.commit.id=66de58275027d344d5b0f0a9ee59acbef52b7152
git.commit.id.abbrev=66de582
git.commit.id.describe=66de582-dirty
git.commit.id.describe-short=66de582-dirty
git.commit.message.full=\u2728 feat\: v3.4.1.0\n\n- \u4E3B\u8981\u66F4\u65B0\n - [\u5347\u7EA7] Spring Boot \u7248\u672C\u5347\u7EA7\u81F3 3.4.1\n - [\u5347\u7EA7] Spring Authorization Server \u7248\u672C\u5347\u7EA7\u81F3 1.4.1\n - [\u65B0\u589E] Spring Authorization Server \u6838\u5FC3\u6570\u636E\u5B58\u50A8\u65B0\u589E NoSQL \u5B58\u50A8\u652F\u6301\u3002\u53EF\u6839\u636E\u9700\u6C42\u4EE5\u901A\u8FC7\u4FEE\u6539\u914D\u7F6E\u65B9\u5F0F\uFF0C\u52A8\u6001\u53D8\u66F4 JPA\u3001Redis \u548C MongoDB \u4E09\u8005\u4E0D\u540C\u7684\u5B58\u50A8\u4ECB\u8D28\u4F5C\u4E3A Spring Authorization Server \u6838\u6570\u636E\u7684\u5B58\u50A8\u4ECB\u8D28\u3002\n- \u5176\u5B83\u66F4\u65B0\n - [\u91CD\u6784] data-module-jpa \u6A21\u5757\u540D\u79F0\u4FEE\u6539\u4E3A data-module-tenant\uFF0C\u66F4\u52A0\u660E\u6670\u4EE3\u7801\u7528\u9014\u548C\u6A21\u5757\u5B9A\u4F4D\u3002\n - [\u91CD\u6784] \u62C6\u5206\u6570\u636E\u57FA\u7840\u6A21\u5757\u4EE5\u53CA\u76F8\u5173\u8054\u6A21\u5757\uFF0C\u4EE5\u652F\u6301\u540E\u7EED\u591A\u4E2D\u6570\u636E\u6E90\u5207\u6362\u3002\n - [\u91CD\u6784] \u57FA\u7840 Jpa findById \u65B9\u6CD5\uFF0C\u91CD\u6784\u4E3A\u8FD4\u56DE Spring Data \u6807\u51C6\u7684 Optional \u7C7B\u578B\u5BF9\u8C61\u3002\n - [\u4FEE\u590D] \u4FEE\u590D Spring Authorization Server \u6838\u5FC3\u6570\u636E AccessTokenType \u672A\u4FDD\u5B58\u95EE\u9898\u3002\n - [\u4FEE\u590D] \u4FEE\u590D\u7F3A\u5931 Spring Authorization Server TLS \u76F8\u5173\u63A7\u5236\u5C5E\u6027\u95EE\u9898\n - [\u4FEE\u590D] \u4FEE\u590D\u767B\u5F55\u5931\u8D25\u8D85\u51FA\u6307\u5B9A\u6B21\u6570\u8D26\u53F7\u81EA\u52A8\u9501\u5B9A\u6761\u4EF6\u6CE8\u89E3\u4E0D\u751F\u6548\u95EE\u9898\u3002\n - [\u4FEE\u590D] \u4FEE\u590D\u524D\u7AEF\u5DE5\u7A0B\u5347\u7EA7\u81F3 Vite6 \u540E\u7F16\u8BD1\u51FA\u9519\u95EE\u9898\n - [\u4FEE\u590D] \u4FEE\u590D\u524D\u7AEF\u4F7F\u7528\u65B0\u7248 Vite \u7F16\u8BD1\u540E\u6837\u5F0F\u5F15\u5165\u9519\u8BEF\uFF0C\u63D0\u793A\u9700\u8981\u5B89\u88C5\u6A21\u5757\u95EE\u9898\u3002\n - [\u4FEE\u590D] \u4FEE\u590D\u65B0\u7248\u8BFB\u53D6 Token \u903B\u8F91\u5224\u65AD\u9519\u8BEF\uFF0C\u5BFC\u81F4\u65E0\u6CD5\u6B63\u786E\u8BFB\u53D6 Token \u95EE\u9898\u3002\n - [\u4FEE\u590D] \u4FEE\u590D\u6570\u636E\u5E93\u521D\u59CB\u5316\u811A\u672C\u9519\u8BEF\n - [\u4F18\u5316] \u91C7\u7528 JDK 17 \u65B0\u8BED\u6CD5\u4F18\u5316 Spring Authorization Server \u6838\u5FC3\u670D\u52A1\u4EE3\u7801\n - [\u4F18\u5316] \u6269\u5C55 Spring Authorization Server \u6838\u5FC3\u6570\u636E Jackson2 \u5904\u7406\u7C7B\uFF0C\u652F\u6301\u989D\u5916\u6DFB\u52A0 Jackson Module \u548C Mixin \u4EE5\u9002\u914D\u4E0D\u540C\u7C7B\u578B\u6570\u636E\u6E90\u3002\n - [\u5B89\u5168] \u4FEE\u590D\u5B89\u5168\u6F0F\u6D1E CVE-2024-47535\n - [\u5B89\u5168] \u4FEE\u590D\u5B89\u5168\u6F0F\u6D1E CVE-2024-12798\n - [\u5347\u7EA7] minio docker \u955C\u50CF\u7248\u672C\u5347\u7EA7\u81F3 RELEASE.2024-12-18T13-15-44Z\n- \u4F9D\u8D56\u66F4\u65B0\n - [\u5347\u7EA7] grpc \u7248\u672C\u5347\u7EA7\u81F3 1.69.0\n - [\u5347\u7EA7] guava \u7248\u672C\u5347\u7EA7\u81F3 33.4.0\n - [\u5347\u7EA7] redisson \u7248\u672C\u5347\u7EA7\u81F3 3.41.0\n - [\u5347\u7EA7] software.amazon.awssdk \u7248\u672C\u5347\u7EA7\u81F3 2.29.39\n - [\u5347\u7EA7] software.amazon.awssdk.crt \u7248\u672C\u5347\u7EA7\u81F3 0.33.7\n - [\u5347\u7EA7] quasar webjars \u7248\u672C\u5347\u7EA7\u81F3 2.17.5\n - [\u5347\u7EA7] sweetalert2 webjars \u7248\u672C\u5347\u7EA7\u81F3 11.15.3\n - [\u5347\u7EA7] lettuce \u7248\u672C\u5347\u7EA7\u81F3 6.5.1.RELEASE\n - [\u5347\u7EA7] logback \u7248\u672C\u5347\u7EA7\u81F3 1.5.15
git.commit.message.short=\u2728 feat\: v3.4.1.0
git.commit.time=2024-12-23 22\:55\:52
git.commit.user.email=pointer_v@qq.com
git.commit.user.name=\u7801\u5320\u541B
git.dirty=true
git.local.branch.ahead=0
git.local.branch.behind=0
git.remote.origin.url=https\://gitee.com/herodotus/herodotus-cloud.git
git.tag=
git.tags=
git.total.commit.count=106
当然,从 jar 包中查看还是不够方便,可以配合使用 Spring Boot Admin 来查看。
[2]关闭方式
如果您不想使用 Git 信息记录,可以选择将其关闭。
在 Dante Cloud 代码工程根目录下,找到 pom.xml
文件。根据您当前的多环境,找到下面配置,将值修改为 true
, 即可关闭 Git 信息记录
<!--不执行git commit 构建-->
<skip.build.git.commit.info>false</skip.build.git.commit.info>