手写SpringBoot3的starter及git高级用法

这篇具有很好参考价值的文章主要介绍了手写SpringBoot3的starter及git高级用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

手动写一个SpringBoot3的启动类以及上传gitee仓库

基础原理知识:

SpringBoot3中自动配置原理的变化:

新版Spring Boot3.X和旧版SpringBoot2.7之前自定义Starter区别

- SpringBoot2.7之前

META-INF/spring.factories文件里添加org.springframework.boot.autoconfigure.EnableAutoConfiguration=XXAutoConfiguration

- SpringBoot2.7推出新的自动配置

在META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件里添加配置类名称,每行包含一个配置类全限定名 兼容META-INF/spring.factories方式。

- SpringBoot3.x 移除spring.factories

移除META-INF/spring.factories方式
只支持META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
增加自动配置。

git的高级用法:

1.git branch:查看当前分支,如果在后面加-a则表示查看所有分支。

2.git log:查看提交历史,在commit id这一项中可以看到提交的历史版本id。

3.git reflog:查看每一次命令的记录

4.git reset --soft:回退到某个版本,只回退了commit的信息。

5.git reset --mixed:为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息。

6.git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉。**

二:步骤

1.回滚到指定版本

首先进入项目根目录下,使用git log 命令,找到需要返回的commit id 号,使用git reset --hard 后跟你需要的commit id号,这样你就回到了指定的版本,注意git reset --hard与git reset --soft的区别:

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。通常使用在当你git commit -m "注释"提交了你修改的内容,但内容有点问题想撤销,又还要提交,就使用soft,相当于软着路;

git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉,相当于硬着路,回滚最彻底。

2.返回到最新版本

当你发现需要回滚到最新版本时,可以采用以下指今步骤

git log:查看历史提交

git reflog:查看每一次命令记录

手写SpringBoot3的starter及git高级用法,日常教训,SpringBoot3,git,spring boot,intellij idea,java

通过git reflog命令查看到之后,我们再利用 git reset 来返回到相应的版本即可,HEAD前面的一串字符为我们简写的ID,所以最后输入

git reset --hard ca936c3即回滚到了最新的版本号了

问题描述:

问题1:

由于我一开始是用SpringBoot3.2.1版本并且使用spring.factories的方式来完成自动装配自动配置类,可是当我在使用
我自己手写这个starter时,就出现了无法注入Bean的错误。

问题2:

在我上传git的时候,也就是上传使用这个手写starter的代码时候出现个离谱大问题。我当时想着把这个代码上传到同一个分支下,开始是上传成功了,但是它把原本的那个手写的starter直接给覆盖了,我当时还是不慌的,因为我有过这样一次经历,就到gitee仓库,手动切换会之前的版本,但,这时候就离谱了,他给我提示版本冲突,无法恢复会之前的版本,于是当时我就有点小慌了,就开始各种尝试,谁知TMD,点了merge这个玩意,导致我本地的代码直接又被远程的代码覆盖了,当时看见,心里不禁感叹,唉服了,不过还好自己知识广泛,自己之前接触并使用切换版本的用法,一直没有经过实践,这下倒好,于是我就立马去网上找一下相关命令,一试果然成功了。事后回想,我TM不是第一次出现这个问题了,真该死啊,上次还是写SpringCloud项目时,导致我直接把我整个项目都给干没了,我写一周的项目啊。

原因分析:

问题1:

因为我自己使用的是SpringBoot3的版本与spring.factories不支持才出现了注入Bean无法注入的问题,改成SpringBoot2相关的版本.向我自己就是改成了2.7.9版本就好了。那么项目就不是SpringBoot3了,后续我将会进行继续学习补上。

问题2:

这个主要是自己没记住上回那个goba的深刻教训以及git相关的知识没掌握牢考,因此写一篇博客记录一下。

解决方案:

问题1的解决方案前面多处提及,这里便不在多做描述

问题2的解决方案:

git reflog 查出需要切换的那个版本的HEAD前面的一串字符(0fff0fa)
git reset -–hard 0fff0fa
最后问题成功解决如下图。😀
手写SpringBoot3的starter及git高级用法,日常教训,SpringBoot3,git,spring boot,intellij idea,java

最后有想看代码的小伙伴们,我附上其gitee仓库地址:

Gitee仓库地址:

Gitee仓库

文章写的可能不乍地,但请点个赞在走呗!文章来源地址https://www.toymoban.com/news/detail-789705.html

到了这里,关于手写SpringBoot3的starter及git高级用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot3基础用法

    目录 一、背景 二、环境搭建 1、工程结构 2、框架依赖 3、环境配置 三、入门案例 1、测试接口 2、全局异常 3、日志打印 3.1 日志配置 3.2 日志打印 四、打包运行 五、参考源码 技术和工具「!喜新厌旧」 最近在一个轻量级的服务中,尝试了最新的技术和工具选型; 即 SpringB

    2024年02月14日
    浏览(35)
  • Git 进阶 高级用法,重要命令记录

    本篇文章用于记录Git高级用法,新手可以看我的另一篇文章:Git基础教学。 Git git fetch 是git pull 的细分步骤,git pull 包含了git fetch git pull origin master 上述命令其实相当于git fetch + git merge 在实际使用中,git fetch更安全一些 因为在merge前,我们可以查看更新情况,然后再决定是否

    2024年03月15日
    浏览(48)
  • springboot 高级教程 jetcache 二级缓存用法

    多级缓存实际上是在二级缓存的基础上,为了更好地提高系统的性能和可靠性,更适用于大型分布式系统的应用场景。 使用多级缓存的原因包括: 数据缓存分层:不同级别的缓存可以被用来缓存不同类型、不同频率访问的数据。在这种情况下,系统会先在本地缓存中寻找数

    2024年02月08日
    浏览(31)
  • redis在日常开发工作中的常见用法

    redis是一款内存型数据库,在开发工作中经常用到,功能强大; 特别开一篇文章用来记录一下它的常见用法,算是一种总结; 它最主要的特点就是高可用的,速度快,分布式;有人说速度快,能有我本地的全局静态变量快?但是在大型的项目中,多个服务器部署时,其他服务

    2024年02月09日
    浏览(28)
  • SpringBoot3之配置文件(学习SpringBoot3的配置这一篇足够)

    1.1 SpringBoot3简介 SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring) ,大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术! SpringBoot的主要目标是: 为所有 Spring 开发提供更快速、可广泛访问的入

    2024年01月18日
    浏览(38)
  • SpringBoot(十)SpringBoot自定义starter

        一个月的时间,转眼已经到了我的SpringBoot系列的第十篇文章。还记得我的第二篇文章SpringBoot(二)starter介绍_springboot的starter_heart荼毒的博客-CSDN博客 曾经介绍过starter。starter除了官方提供的以外,我们也可以自定义。本篇,就介绍下如何自定义一个工具类的starter。  

    2024年02月14日
    浏览(23)
  • 【springboot3.x 记录】解决 springboot3 集成 mybatis-plus 报 sqlSession 异常

    2022-12-30,作者最新发布了 3.5.3.1 版本,不需要使用快照版本了 ========================= springboot3 已经发布正式版,第一时间尝鲜看看如何,但是在集成 mybatis-plus 最新版 3.5.2 的时候发现提示异常。 看来 springboot3 在注入这块做了调整,但目前 mybatis-plus 并没有适配到。 于是翻查

    2024年02月13日
    浏览(37)
  • SpringBoot自定义starter

    参考文章:SpringBoot自定义starter_springboot3.0自定义starter_kksilu的博客-CSDN博客 我这里是根据上面博主的文章做的练习   DemoService: DemoConfig: Spring.factories: 安装到maven仓库 在application.properties中添加配置: 启动类测试: 最后就可以看到,控制台输出    DemoService{demo=\\\'123\\\'}    了

    2024年02月12日
    浏览(31)
  • 【SpringBoot】一、SpringBoot3改变&新特性

    前言 本文适合具有springboot的基础的同学。 Java 17或更高版本 Gradle 7.5+或Maven 3.5+ SpringMVC 5.2 以后 允许我们使用函数式的方式,定义Web的请求处理流程。 Web请求处理的方式: @Controller + @RequestMapping:耦合式 (路由、业务耦合) 函数式Web:分离式(路由、业务分离) 场景:Us

    2024年02月10日
    浏览(23)
  • 1. SpringBoot3 基础

    在 SpringBoot 之前,通过 Spring Framework 整合各种子项目,来构建 Spring应用程序: 传统方式构建 spring 应用程序,需要挨个导入依赖,项目配置繁琐: SpringBoot 是 Spring 提供的一个子项目,用于快速构建 Spring 应用程序: SpringBoot 的特性,用于简化开发: (1) 起步依赖 :本质上就

    2024年01月20日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包