首页 > 其他分享 >SpringBoot的基本概念(1)

SpringBoot的基本概念(1)

时间:2022-08-21 12:45:45浏览次数:123  
标签:装配 启动器 springboot 启动 spring jar 基本概念 SpringBoot

 

1.为什么使用springboot 

  springboot容易上手,做了jar包的版本控制,不用考虑maven依赖,方便敏捷开发,内置tomcat减少开发配置,由于SPI提供对外的starter扩展。

 

2.springboot的自动装备原理:

@SpringBootApplication
    @EnableAutoConfiguration
        @Import(EnableAutoConfigurationImportSelector.class)
                EnableAutoConfigurationImportSelector 类
                    selectImports 方法 读取 META-INF/spring.factories 下的配置
key-value 形式的配置,交给ioc管理
    @ComponentScan
    @SpringBootConfiguration

 

3.springboot自动装配jar包扩展

  1:写一个自动装配的jar包,用来写自己启动器的核心逻辑.
    2:在自动装配工程中导入redis原生的jar包(不要导入启动器的包)
    3:在自动装配工程中创建一个meta-inf/spring.facotries文件  文件内容是
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.tuling.autoconfig.TulingRedisAutoConfiguration
    4:把你的自动装配类 安装到自己本地maven仓库中

    5:创建一个启动器工程 什么都不做,只做一个自动装配工程的依赖就可以了
    6:把启动器工程同样安装到本地maven仓库中.
    7:写一个测试工程来使用你自己的启动器好不好用.
        7.1)导入你自己的启动器工程(不是自动装配工程)
        7.2)在application.yml中配置属性.

 

 

4.springboot启动jar包

(1)Spring Boot应用打包之后,生成一个Fat.jar,包含了应用依赖的jar包和Spring Boot loader相关的类。
(2)Fat jar的启动Main函数是JarLauncher,它负责创建一个LaunchedURLClassLoader来加载/lib下面的jar,并以一个新线程启动应用的Main函数。



1.通过插件spring-boot-plugin 生成对应的 MANIFEST.MF文件,其中包含 main-class 指定运行 java -jar 的主程序, 并且把依赖的jar文件打包成fat.jar 2.运行java -jar    jarLauncher通过加载BOOT-INFO/class目录,以及BOOT-INFO/lib目录的文件,实现fat.jar的启动。 3.State-Class 加载应用程序的main方法。

 

5.springBoot 启动war包

tomcat---> web.xml--filter servlet listener 3.0+
tomcat启动的时候肯定调用了 SpringBootServletInitializer 的  SpringApplicationBuilder , 就会启动springboot

 

6.springboot的启动spring容器过程
    1.获取启动类。:需要根据启动类加载ioc容器     -- 并且.存储配置类
    3.推算web环境 是servlet  还是webFlux
    4.读取spring.factories     ,读取对外扩展的,对内解耦
        ApplicationContextInitializer,ApplicationListener  对外扩展
    5.根据main推算所在的类。
    

 

       

 

标签:装配,启动器,springboot,启动,spring,jar,基本概念,SpringBoot
From: https://www.cnblogs.com/dhdnm/p/16609803.html

相关文章

  • 新建Springboot项目默认test包下的测试类报错缺少org.junit.jupiter.api
    参考CSDN博客链接:https://blog.csdn.net/weixin_39764056/article/details/104402593本人使用IDEA新建了一个Springboot项目,然后导入了spring-boot-start-test依赖,该项目......
  • SpringBoot框架:配置项目在访问后台端口时默认跳转的接口或页面
    一、配置一般需要这种配置的都是前后端一体的项目,在通过后台端口访问时需要默认跳转到某个指定的接口,或者跳转到某个执行的接口。实现WebMvcConfigurer接口,重写a......
  • SpringBoot--嵌入式Servlet容器
    一、嵌入式Servlet容器在传统的Web开发中,需要将项目打成war包,在外部配置部署好Tomcat服务器,而这个Tomcat就是Servlet容器,在使用SpringBoot开发时,我们无需再外部......
  • SpringBoot--静态资源映射处理
    在web开发中,静态资源的访问是必不可少的,如图片、js、css等资源的访问SpringBoot对静态资源访问提供了很好的支持,基本使用默认配置就能满足开发需求(嵌入式servlet容器)先......
  • 【SpringBoot】定时任务
    SpringBoot实现定时任务SpringBoot创建定时任务,目前主要有以下三种实现方式:基于注解(@Scheduled):基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上......
  • SpringBoot 搭建和使用图形化监控界面
    我们开发好的SpringBoot服务发布到公网上,肯定希望能够对其状态和资源消耗情况进行监控,特别是对每个接口访问情况的统计,以便在发生问题时能够快速排查和分析并解决问题。......
  • 聊聊@SpringBootApplication注解
    @SpringBootApplication其实就是以下三个注解的总和@Configuration: 用于定义一个配置类@EnableAutoConfiguration :SpringBoot会自动根据你jar包的依赖来自动配置项......
  • 基于SpringBoot的SSMP整合
    前言实体类开发————使用Lombok快速制作实体类Mapper开发————整合MyBatisPlus,制作数据层测试Service开发————基于MyBatisPlus进行增量开发,制作业务层测试......
  • SpringBoot整合Redis实现常用功能
    SpringBoot整合Redis实现常用功能建议大小伙们,在写业务的时候,提前画好流程图,思路会清晰很多。文末有解决缓存穿透和击穿的通用工具类。1登陆功能我想,登陆功能......
  • IDEA初始化创建SpringBoot项目
    创建SpringBoot打开新建项目配置项目基本需求其中URL改成:start.springboot.io创建完成后等待依赖包下载下载完成之后点击右侧Maven中的Lifecycle-install进行更新......