随笔

254 阅读4分钟

你遇到的问题是因为SSH密钥认证失败,GitHub不允许无授权的访问。这可能是由以下几个原因造成的:

  1. SSH密钥未添加到GitHub账户:你需要确保你的本地机器上生成的SSH密钥已经被添加到GitHub账户的安全设置中。
  2. SSH密钥不匹配:你可能在不同的设备上生成了多个SSH密钥,而你正在使用的SSH密钥并不是GitHub账户关联的那个。
  3. SSH配置错误:你的SSH配置文件(通常位于~/.ssh/config)可能包含了错误的主机名映射或者是没有正确指向你的SSH密钥。

为了修复这个问题,你可以按照以下步骤操作:

步骤1:检查SSH密钥是否已添加至GitHub

  1. 打开你的GitHub账户设置页面。
  2. 寻找“SSH and GPG keys”部分。
  3. 确认列表中有你的SSH公钥。

如果没有,你需要生成一个新的SSH密钥对并将其添加到GitHub账户中。

步骤2:生成SSH密钥对(如果尚未生成)

  1. 打开终端。

  2. 运行下面的命令来生成一个新的SSH密钥对:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    替换your_email@example.com为你在GitHub上注册的电子邮件地址。

  3. 当提示输入文件位置时,按回车键接受默认值。

步骤3:添加SSH密钥到GitHub账户

  1. 使用cat命令查看新生成的公钥文件内容:

    cat ~/.ssh/id_ed25519.pub
    
  2. 复制公钥内容。

  3. 登录到GitHub账户,转到“Settings” > “SSH and GPG keys”,点击“New SSH key”,粘贴复制的公钥内容,然后保存。

步骤4:测试SSH连接

在完成上述步骤后,尝试再次使用SSH方式克隆仓库,或者先测试一下SSH连接是否正常:

ssh -T git@github.com

如果一切顺利,你会看到类似的消息:“You've successfully authenticated...”。

步骤5:再次尝试克隆仓库

现在,你应该能够成功地使用SSH方式克隆你的GitHub仓库了。如果仍然遇到问题,不妨检查你的SSH配置文件(~/.ssh/config),确保它正确地映射了GitHub的主机名和SSH密钥路径。

在Spring Boot应用中,application.ymlapplication.properties文件中的配置是在应用程序初始化阶段加载的,这一过程涉及到了Spring框架的核心机制——Bean的生命周期管理和配置元数据解析。

配置加载时机

  1. Application Context 初始化:当Spring Boot应用启动时,会创建一个ApplicationContext。在这个上下文初始化的过程中,Spring会扫描所有的配置类(通过@Configuration注解标识)、属性文件(如application.yml)以及其他配置来源。
  2. PropertySource 加载:Spring会自动检测并加载application.ymlapplication.properties文件作为PropertySource的一部分。这意味着配置文件中的每一项都会变成Spring Environment中的一个属性,可供后续的Bean注入和配置使用。
  3. Profile Selection:如果应用中定义了多个profile(比如开发、测试和生产环境),Spring会根据当前激活的profile来选择合适的配置文件加载,例如application-dev.ymlapplication-prod.yml
  4. Bean Post-Processors:在Bean的创建过程中,一些特殊的Bean被称为Bean Post-Processors,它们可以在Bean创建前后进行干预,其中就包括了org.springframework.boot.autoconfigure.ConfigurationPropertiesBindingPostProcessor,用于将配置文件中的属性绑定到对应的Java Bean上。

数据库配置与MyBatis Plus

对于数据库配置和MyBatis Plus这样的ORM框架配置,它们通常是通过Spring Boot的自动配置功能实现的。具体来说:

  • 数据库配置:Spring Boot提供了spring.datasource.*属性来配置数据源,这些配置会被DataSourceAutoConfiguration类自动识别并创建对应的数据源Bean。
  • MyBatis Plus:MyBatis Plus作为一个增强版的MyBatis框架,它的配置也是基于Spring Boot的自动配置原理。通过mybatis-plus.*属性,可以配置Mapper接口的位置、全局配置、类型别名包等。这些配置最终会被MyBatisPlusAutoConfiguration类解析并应用于框架的初始化。

总结

总的来说,application.ymlapplication.properties中的配置是在Spring Boot应用启动时,随着ApplicationContext的初始化而被加载和解析的。数据库配置和MyBatis Plus等框架的具体配置则是在Spring Boot的自动配置机制下,根据预设的属性和策略进行动态装配的。