Spring BOOT源码日志

spring context启动入口方法:

org.springframework.boot.SpringApplication#run(java.lang.String...)

//加载环境以及propertie文件等常量

org.springframework.boot.SpringApplication#prepareEnvironment

//创建BeanFactory

org.springframework.boot.SpringApplication#createApplicationContext

//为后续的context中bean的加载初始化一些加载器Bean定义到BeanFactory.

org.springframework.boot.SpringApplication#prepareContext

//装载Bean

org.springframework.boot.SpringApplication#refreshContext

其中分为几个环节:

1)对BeanFactory进行配置

 org.springframework.context.support.AbstractApplicationContext#prepareBeanFactory

2)执行BeanFactory创建后的额外的上下文相关的配置(视具体上下文的定制化逻辑决定,如spring-web,会将BeanFactory引用加入到servletContext中 ),下面是三种context下的例子:

org.springframework.context.support.AbstractApplicationContext#postProcessBeanFactory

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#postProcessBeanFactory

org.springframework.web.context.support.GenericWebApplicationContext#postProcessBeanFactory

3)执行前面步骤加入到的BeanFactoryPostProcessor。

org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors

1.优先执行org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor的processor,可以

加载beandefinition到beanFactory.

优先执行的是ConfigurationClassPostProcessor

org.springframework.context.annotation.ConfigurationClassPostProcessor#processConfigBeanDefinitions

可以加载不同定义路径的Bean。

org.springframework.context.annotation.ConfigurationClassParser#parse(java.util.Set<org.springframework.beans.factory.config.BeanDefinitionHolder>)

第一种是根据@SpringBootApplication注解获取相关的bean定义。

@ComponentScan是@SpringBootApplication的别名,所以有SpringBootApplication的注解会自动扫描其项目下的包,根据注解识别是否该创建为bean。

并且还会扫描注解类的所有注解(含注解类的注解),找到该类下所有注解类为org.springframework.context.annotation.Import的value值。

org.springframework.context.annotation.ConfigurationClassParser#collectImports

找到所有import的value中使用的类后进行bean的引入,根据value对应的引入类的不同,进行不同的引入策略

org.springframework.context.annotation.ConfigurationClassParser#processImports

分为三种:

1 org.springframework.context.annotation.ImportSelector

 

使用下方法根据选择器获得使用org.springframework.boot.autoconfigure.EnableAutoConfiguration的配置,再加载bean

org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#getAutoConfigurationEntry

2 org.springframework.context.annotation.ImportBeanDefinitionRegistrar

条件引入bean

3 其他

@Configuration的注解引入


 

 

 

org.springframework.context.support.PostProcessorRegistrationDelegate#invokeBeanDefinitionRegistryPostProcessors

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个Java的开源框架,它提供了一个快速构建基于Spring的应用程序的方式。它简化了Spring应用程序的开发,并且集成了大量的其他Spring项目。Spring Boot后台管理源码Spring Boot框架的后台管理系统的源代码。这个后台管理系统可以用于管理和监控Spring Boot应用程序的运行情况,包括配置管理、日志跟踪、错误处理、性能监控等功能。 Spring Boot后台管理源码的核心部分包括一个基于Spring框架的Web应用程序,它可以通过浏览器访问,并且提供了用户界面来管理Spring Boot应用程序。这个后台管理系统通常包括多个模块,比如用户管理、权限管理、日志管理、监控管理等模块,每个模块都有对应的源代码和配置。 在Spring Boot后台管理源码中,可以看到大量的Java代码、HTML模板、样式表、JavaScript代码等。这些源代码主要负责实现后台管理系统的功能,比如通过Java代码来处理用户请求,调用Spring Boot应用程序的接口来获取数据,通过HTML模板和JavaScript代码来实现用户界面等。 除了源代码之外,还有一些配置文件和资源文件,比如Spring Boot应用程序的配置文件、日志文件、静态资源文件等。这些文件也是后台管理系统的重要组成部分,它们的内容会影响后台管理系统的运行和表现。 总的来说,Spring Boot后台管理源码是实现Spring Boot框架后台管理系统的关键部分,它包括了多个模块的源代码、配置文件和资源文件,用于管理和监控Spring Boot应用程序的运行情况。通过研究和理解这些源码,可以帮助开发者更好地理解Spring Boot框架的实现原理,并且可以为自己的项目开发提供参考和借鉴。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值