springBoot 主要结构
2022-07-04 10:49:46 0 举报
AI智能生成
登录查看完整内容
springBoot主要总结
作者其他创作
大纲/内容
开发者按照预定俗称的规范开发,统一开发模型,减少非必要的成本
约定大于配置
提供的各种stater,整合现有方案,不重复开发轮子
整合已有技术方案
封装重复的配置,简化开发
自动配置
设计理念
依赖管理
减少模板化的配置,提供开箱即用的功能
自动配置时,根据classPath中引入的依赖进行配置,因此对于不需要的功能,尽量不要引入依赖,否则可能会配置一些不必要的对象
设置spring.boot.enableautoconfiguration
关闭自动配置
不需要相应配置时,可排除自动配置类
EnableAutoConfiguration
SpringBootApplication
根据自动配置类的条件,让其条件不满足
排除配置类
配置文件中配置debug=true
查看配置生效情况
自动配置的组件,若不能满足要求,还可以自定义配置
使用注意
此组件返回自动配置类,并进行配置类的处理,包括去重(加载的所有spring.factories文件可能有重复的配置),排除等操作
获取EnableAutoConfiguration注解的相关配置,排除指定的配置类
AutoConfigurationImportSelector
根据条件决定配置类是否生生效
@Conditional*
@AutoConfigureBefore
@AutoConfigureAfter
指定配置类之间的依赖顺序
注解
通过EnableAutoConfiguration开启自动配置,扫描类路径下的所有spring.factories文件,加载其中的**AutoConfiguration配置类,并根据@Conditional**注解判断是否生效该配置类,若条件满足,则加载配置类中@Bean方法定义的bean,并将其添加到容器中,从而实现自动配置
定义待添加到容器中的组件,主要是自动配置类,此外还有监听器,初始化器等
类加载器
资源加载
PriorityOrdered
Ordered
排序
异常报告
SpringBootExceptionReporter
监听事件进行不同处理
ApplicationListener
初始化context
ApplicationContextInitializer
EnvironmentPostProcessor
AutoConfigurationImportListener
AutoConfigurationImportFilter
FailureAnalyzer
TemplateAvailabilityProvider
可配置组件
spring.factories
配置使用的bean
自动配置类
注册自动配置类到spring.factories文件中
自定义stater
RedisAutoConfiguration
CacheAutoConfiguration
DataSourceAutoConfiguration
常见实例
starter
核心
引导spring启动,配置组件
监听器
初始化器
......
可配置使用的组件
SpringApplication
将配置文件中的数据绑定到实体类
配置绑定
数组
集合
bean...
类型转换
校验配置的属性
属性校验
ConfigurationProperties
访问运行SpringApplication的程序参数
容器在启动过程中,已经手动注册该对象
若需要访问参数,可在bean中直接注入该对象即可
ApplicationArguments
容器启动过程中的不同阶段,都会发布相应的事件,可监听事件进行处理
事件发布顺序
事件对象
ApplicationEvent
如配置文件的加载,整合其他框架(如触发dubbo框架的解析在contextrefreshedevent事件发生后)
监听事件处理
spring.factories文件中配置
单线程发布
如何指定线程池
线程池发布
事件派发器
ApplicationEventMulticaster
对象
事件机制
容器启动时打印指定的内容
spring.main.banner-mode = off
开关
ResourceLoader
加载
banner
容器启动后,指定一些特定操作
ApplicationRunner
CommandLineRunner
回调接口
runner
ThreadPoolTaskExecutor
TaskExecutorCustomizer
自定义线程池
普通线程池
ThreadPoolTaskScheduler
TaskSchedulerCustomizer
自定义定时任务
定时任务
线程池
tomcat
netty
jetty
内置web容器
ErroController
错误处理
web
常见对象
springBoot主要结构
0 条评论
回复 删除
下一页