0%

最近将开发环境集体转移到了 WSL 环境,既然是 Linux 的环境就用 Linux 的机制。在 Windows 下常用储存敏感凭据的方式是 Windows 凭据管理,git 对此有较好的支持,可以直接储存账号密码;而在 linux 下 ssh key 是个更加方便的方式,可以把各种凭据收容在一起管理。于是切换环境后远端 git 仓库的访问就改成使用 ssh key 了。下面把过程列出:

生成 ssh key

生成 key 的话可以使用 ssh-keygen,在 shell 里使用这个命令就可以进入创建流程,根据提示流程走完命令后它会在 ~/.ssh/ 目录下生成 id_rsa 与 id_rsa.pub 两个文件,文件名称可以在生成过程中修改,但是后缀是相同的:一个无后缀,保存私钥;另一个后缀为 .pub,保存公钥

提交公钥部分至 GitHub

进入 https://github.com/settings/keys 页面,选择 New SSH key 选项。里面 title 项是用来备注的,自己填一填,下面的 key 一栏填刚才的生成的 key 的公钥部分,即 id_rsa.pub,然后保存即可

验证密钥

尝试 ssh git@github.com,如果配置正确的话 Github 的反馈应该与此类似

Hi *** ! You’ve successfully authenticated, but GitHub does not provide shell access.

更新 git remote url

使用 SSH key 方式之后访问自己 GitHub repo 的方式会有变化,访问 repo 时使用的 url 格式为

git@github.com:<username>/<repo-name>.git

补充更新本地 git 仓库的 remote url 的方式:

git remote set-url origin [email protected]:<username>/<repo-name>.git

(可选)自定义 key 名称后的额外配置

如果你的 key 名称保持为 id_rsa 的话,到此 git 已经可以正常运作了。

如果你的 key 名称有变化的话,可以通过设置 ~/.ssh/config 来让 git 找到正确的密钥,因为 git 通过 SSH key 方式访问远程仓库实际上是通过调用 ssh 来操作的,只要让 ssh 能够找到密钥,git 就可以正确运作。

具体操作是,在 ~/.ssh/config 文件中添加以下几行:

1
2
3
4
5
Host github.com
HostName github.com
port 22
User git
IdentityFile <your-private-key-path>

其中 IdentityFile 指向私钥路径。

至此配置结束

@CreateDate 与 @CreationTimeStamp

比较

共同点

  • 都能够标记在日期属性上,实现实体创建时自动补充日期属性
  • 都支持多种时间类型
  • 能够支援不同的数据库

不同点

  • @CreateDate 来自 SpringJpaAuditing 框架,使用不会导致与库、框架耦合,并且能够被 SpringBoot 自动配置,仅需要引入依赖和在 SpringApplication 上加入 @EnableJpaAuting 的注解,解耦充分

  • @CreationTimeStamp 来自 hibernate 框架,目前常用于 Jpa 接口的实现,因此如果项目使用 Jpa 的话就不适合使用 hibernate 框架的注解,会导致与 hibernate 耦合,使得 JPA 的灵活性下降