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

SpringBoot的基本概念(1)

作者:互联网

 

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
来源: https://www.cnblogs.com/dhdnm/p/16609803.html