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