SpringBoot执行过程

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

SpringBoot设计目的是简化Spring应用的初始搭建以及开发过程。

  • SpringBoot程序优点

起步依赖(简化依赖配置)
自动配置(简化常用工程相关配置)
辅助功能(内置服务器,……)
  • SpringBoot如何起步依赖,自动配置,辅助功能?

通过四种方式:parent starter 引导类 内嵌tomcat

parent

  • parent:减少配置依赖 冲突,简化配置。

  • 如何简化依赖管理思路

把版本集中管理坐标集中管理一拆为二,
第一个是把常用的版本信息统一写到一起,配置成maven属性。
第二个直接引用左边坐标, 只做坐标管理,把结构打开,把能用的所有坐标列一遍。
而springboot全做成大的版本统一,把版本融合性进行测试,哪个匹配最好。
好处:以后不用管理坐标版本。

SpringBoot执行过程,SpringBoot,spring boot,java

pom.xml文件中的<parent> </parent>

SpringBoot执行过程,SpringBoot,spring boot,java

打开parent可以发现其中又继承了一个坐标,引入了很多依赖

SpringBoot执行过程,SpringBoot,spring boot,java

各种依赖版本号属性,下面列出依赖版本属性的局部,可以看的出来,定义了若干个技术的依赖版本号

SpringBoot执行过程,SpringBoot,spring boot,java

总结:

1. 开发SpringBoot程序要继承spring-boot-starter-parent。
2. spring-boot-starter-parent中定义了若干个依赖管理。
3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突。
4. 继承parent的形式也可以采用引入依赖的形式实现效果。
5. 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号
(依赖管理,而非依赖),以达到减少依赖冲突的目的。
6. spring-boot-starter-parent各版本间存在着诸多坐标版本不同。

starter

  • SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,

以达到减少依赖配置的目的。

  • 将具备某种功能的坐标打包到一起,可以简化依赖导入的过程。

例如:我们导入 spring-boot-starter-web这个starter,
则和web开发相关的jar包都一起导入到项目中了。

总结:

1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
3. 使用starter可以实现快速配置的效果,达到主体做简化配置目的,要用到parent继承过来的版本。

实际开发

1. 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,
除非SpringBoot未提供对应版本V 。
2. 如发生坐标错误,再指定Version(要小心版本冲突)。

引导类

  • 引导类也是程序的入口,加载bean,把bean加载起来。

1.SpringBoot工程提供引导类用来启动程序,运行main方法就可以启动项目,
而引用类的功能主要依赖@SpringBootApplication解,当没有任何指定包的时候,
spring扫的是默认当前配置类所在包以及子包。
2. SpringBoot工程启动后创建并初始化Spring容器,扫描引导类所在包加载bean。

SpringBoot执行过程,SpringBoot,spring boot,java

  • 注意:

未启动web服务器,那谁启动web服务器的呢?

辅助功能(内嵌tomcat)

  • 内嵌Tomcat服务器是SpringBoot辅助功能之一。

  • 为什么程序中没有装tomcat还能启动起来带tomcat?

将一个tomcat容器的执行过程抽取出来,变成一个对象,然后把这个对象交给spring容器进行管理。
变成了spring容器中有一个tomcat对象,要运行的所有东西要在tomcat对象里面运行。

SpringBoot执行过程,SpringBoot,spring boot,java

  • 使用maven依赖管理变更起步依赖项

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!--web起步依赖环境中,排除Tomcat起步依赖-->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--添加Jetty起步依赖,版本由SpringBoot的starter控制-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>
  • 总结:

1. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理。
2. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器。

RESTful风格后续简单总结

@RequestParam用于接收url地址传参或表单传参

@RequestBooy用于接收json数据

@PathVariable用于接收路径参数,使用{参数名称}描述路径参数

应用

后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBoody较多,实体类接收数据。

发送非json格式数据,用@RequestParam接收请求参数

采用RESTful进行开发,当参数数量较少时,可以采用@PathVariable接收请求路径变量,通常用于传递id值。

@Controller和@ResponseBood简化成@RestController

@RequestMapping(method=RequestMethod.GET)简化成@GETMapping文章来源地址https://www.toymoban.com/news/detail-601786.html

到了这里,关于SpringBoot执行过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SpringBoot执行过程

    SpringBoot程序优点 起步依赖(简化依赖配置) 自动配置(简化常用工程相关配置) 辅助功能(内置服务器,……) SpringBoot如何起步依赖,自动配置,辅助功能? 通过四种方式:parent starter 引导类 内嵌tomcat parent:减少配置依赖 冲突,简化配置。 如何简化依赖管理思路 把版

    2024年02月16日
    浏览(14)
  • Spring Boot 可执行 Jar 包运行原理

    Spring Boot 有一个很方便的功能就是可以将应用打成可执行的 Jar。那么大家有没想过这个 Jar 是怎么运行起来的呢?本篇博客就来介绍下 Spring Boot 可执行 Jar 包的运行原理。 将 Spring Boot 应用打成可执行 Ja r包很容易,只需要在 pom 中加上一个 Spring Boot 提供的插件,然后在执行

    2024年02月06日
    浏览(48)
  • 深入了解 Spring Boot 的加载过程

    Spring Boot 的加载过程可以大致分为以下几个阶段: 类加载 :首先,Java 虚拟机会加载必要的类,包括 Spring Boot 的核心类和应用程序的相关类。 配置解析 :Spring Boot 会解析各种配置,如 application.properties 或 application.yml 文件中的配置。 自动配置 :根据应用程序的需求和配置

    2024年04月23日
    浏览(29)
  • 探索 Spring Boot 项目全过程

    在 Java 这个圈子,一提到框架就不得不提到 Spring Boot;那 Spring Boot 到底是何许物也呢?Spring Boot 就是简化 Spring 程序开发的框架。怎样理解 Spring Boot 和Spring 之间的关系呢?一句话总结: “Spring 的诞⽣是为了简化 Java 程序的开发的,而 Spring Boot 的诞⽣是为了简化 Spring 程序开

    2024年02月11日
    浏览(54)
  • Spring Boot 中批量执行 SQL 脚本的实践

    在Spring Boot应用中,有时候我们需要批量执行存储在数据库中的 SQL 脚本。本文将介绍一个实际的案例,演示如何通过 Spring Boot、MyBatis 和数据库来实现这一目标。 0、数据库层 1. 控制器层(Controller) 2. 服务层(Service) 3. 数据访问层(Mapper) 4. MyBatis 配置文件(BatchUpdateMap

    2024年01月17日
    浏览(38)
  • Spring Boot进阶(52):Spring Boot 如何集成Flyway并初始化执行 SQL 脚本?| 超级详细,建议收藏

           在我们的认知中,我们会使用 SVN 或 Git 进行代码的版本管理。但是,我们是否好奇过,数据库也是需要进行版本管理的呢?         在每次发版的时候,我们可能都会对数据库的表结构进行新增和变更,又或者需要插入一些初始化的数据。而我们的环境不仅仅只

    2024年02月15日
    浏览(34)
  • Spring Boot 中的任务执行器是什么,如何使用

    Spring Boot 是一个非常流行的 Java 开发框架,它的核心理念是通过简单的配置和约定来提高开发效率。在很多情况下,我们需要在后台执行一些任务,比如异步处理、定时任务等等。为了简化这些任务的开发和管理,Spring Boot 提供了一个任务执行器(Task Executor)。 任务执行器

    2024年02月15日
    浏览(33)
  • Spring Boot实现在启动时执行一次的功能

    此方法可能是最常用的 可以使用Spring Boot的@PostConstruct注解来实现在启动时执行一次的功能。@PostConstruct注解标记的方法会在Bean初始化完成后自动调用,可以在该方法中执行只需要在启动时执行一次的操作。 如果想在生成对象时完成某些初始化操作,而偏偏这些初始化操作又

    2024年02月06日
    浏览(40)
  • spring-boot版本影响Spring AOP @Before @Around @After等执行顺序

    郁闷了半天,我通过AOP切面打印的日志顺序怪怪的,网上查了好几篇文章都说没问题,最后发现是springboot版本升级后@Before @Around @After等执行顺序发生了变化。 springboot版本 2.3.1.RELEASE 之前,after在around之后执行, 2.3.1.RELEASE 及之后,around包裹整个切面执行周期。 spring boot 版本

    2024年02月07日
    浏览(39)
  • Spring Boot 自动化单元测试类的编写过程

    前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效,也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的,并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测试呢?答案是

    2024年04月16日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包