springboot原理

springApplication中的注解

springApplication的run方法

        

     其中springBootApplication它提供了快速配置Spring Boot应用程序的方式,减少了冗长和复杂的配置文件

run

而run这个静态方法他是整个启动程序的核心方法

 springApplication

  我们打开springBootApplication这个注解后就会看到@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan这三个关键核心注解用于快速配置和运行Spring Boot应用程序

SpringBootConfiguration

这就是SpringBootConfiguration的源码信息,用于声明一个类为Spring Boot的配置类。而标起来的

@Target({ElementType.TYPE})

                他表示这个注解适用于类、接口、枚举类等类型的声明

@Retention(RetentionPolicy.RUNTIME)

                他表示这个注解将保留到运行时,可以通过反射机制读取这个注解的信息。

@Configuration

        标识一个类是配置类

EnableAutoConfiguration

EnableAutoConfiguration用于启用自动配置机制,而@AutoConfigurationPackage这个注解用于自动配置应用程序的包

AutoConfigurationPackage

这里就是AutoConfigurationPackage的源码信息而import这个注解而括号里的方法是Spring Boot中用来注册自动配置包的一个类。它可以通过手动调用register()方法,将指定的类所在的包及其子包注册为自动配置包,方便自定义配置

ComponentScan

ComponentScan,用于指定需要扫描的组件(包括Bean、配置类等)所在的包路径。注解中的excludeFilters属性用于设置过滤器,用于排除特定类型的组件不被扫描和注册为Spring组件。源码如下

设置应用类型

这个非常重要,他决定项目的类型,应用类型分为三种,都在WebApplicationType这个枚举类中

第一种:NONE 什么都没有,正常流程走
第二种:SERVLET 基于servlet的web程序
第三种:REACTIVE 基于reactive的web程序

设置初始化器(Initializer)

初始化器ApplicationContextInitializer用于IOC容器刷新之前初始化一些组件源码如下:

    要获取初始化名在loadFactoryNames方法中那个set<String>中的string就是初始化器的名了,最终调用的是SpringFactoriesLoader.loadSpringFactories的方法

监听器

      Spring框架中的事件机制是基于观察者模式实现的,即定义了一个事件源(ApplicationEventPublisher)和多个事件监听器(ApplicationListener),当事件源发布事件时,所有注册的事件监听器都会接收到该事件,并进行相应的处理

        

Spring Boot中常用的监听器包括:

  1. ApplicationStartingEvent:应用程序启动前触发的事件,可以在此事件中做一些初始化操作。

  2. ApplicationStartedEvent:应用程序启动完成时触发的事件,可以在此事件中进行一些后置处理。

  3. ApplicationReadyEvent:应用程序已准备好接收请求时触发的事件,可以在此事件中做一些数据初始化操作。

  4. ApplicationFailedEvent:应用程序启动失败时触发的事件,可以在此事件中进行异常处理。

总之,Spring Boot中的监听器是一种重要的组件,它可以监控应用程序的各种事件,如启动和关闭、请求到达和离开等,并做出相应的响应。监听器的使用可以将不同的功能模块解耦,使得系统更加灵活和可复

起步依赖

起步依赖(Starter Dependencies)是Spring Boot框架中的一个重要特性,它提供了一种简化项目构建和依赖管理的方式

在传统的Java项目中,我们通常需要手动添加各种第三方库和框架的依赖,而且版本管理也需要自行处理。这样的过程比较繁琐,并且容易发生版本冲突或者依赖不一致的问题。
而Spring Boot的起步依赖机制解决了这个问题。起步依赖是一个可插拔的依赖集合,其中包含了一组相关的依赖项,这些依赖项已经被事先配置和测试好了。使用起步依赖可以简化项目的依赖管理,只需要选择合适的起步依赖,就可以获得相关功能的所有必要依赖项,并且这些依赖项的版本之间是经过充分测试和兼容的。

起步依赖的好处

        它简化了项目配置、版本管理和依赖冲突解决的过程,让开发者能更加专注于业务逻辑的开发而不用过多关注底层技术细节。

总结:

        Spring Boot的起步依赖提供了一种简化项目构建和依赖管理的方式。通过选择合适的起步依赖,可以自动获取相关功能的所有必要依赖项,避免手动管理依赖造成的问题,提高开发效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值