[SB框架]SpringBoot详细 原理加应用

这是一份详尽的SpringBoot教程,涵盖从快速入门到源码分析,包括配置、自动配置、事件监听、扩展、微服务实战、监控、测试等方面,深入讲解SpringBoot的工作流程和核心特性。
摘要由CSDN通过智能技术生成

SpringBoot-all

github

course1 课程一 SpringBoot快速入门

https://start.spring.io/ Springboot项目快速构建网站

@SpringBootApplication注解
查看源码发现它相当于SpringBootConfiguration Springboot配置类似于Configuration注解
EnableAutoConfiguration 自动注入配置
ComponentScan 扫描 这三个注解

course2 课程2 SpringBoot配置分析

默认配置文件application.properties默认的位置在classpath根目录,或者是classpath/config目录下
file:/,file:config/
           也可以使用yaml格式,application.yml或者application.yaml
application中是自定义参数,在Courese2Application用三种方式取得配置文件中的值
1.@Value  Spring注解 默认值方式为${"hello:huangsm"}
2.Environment   SpringBoot新特性,通过键值对的方式获取配置值      
3.通过@ConfigurationProperties(prefix = "huel") 代码参考Huel实体类

TomcatProperties支持集合和数组的注入

2.动态的引入配置文件
 自定义MyEnvironmentPostProcessor实现EnvironmentPostProcessor接口
 
3.各个生产环境的切换---通过配置方式
#测试环境
spring.profiles.active=dev

maven启动参数方式切换配置文件(表示启用多个)
--spring.profiles.active=dev,prod

4.根据不同环境注入不同的Bean 
详情查看MyConfig编码
@Profile注解在类上或者方法上使用,代表装配不同的Bean

course3 课程3 SpringBoot自动配置

1.Condition接口   (用来自定义条件装配来使用)
其中有一个抽象方法matches,参数分别为ConditionContext context, AnnotatedTypeMetadata metadata
如何这个方法返回true表示可以自动装配,false表示不装配
2.Conditional注解 对接口的注解封装
基于条件的自动装配,一般配合Condition接口一起使用,只有接口实现类返回true,才装配,否则不装配,
他可以用在方法上,也可以用在类上。    
3. @ConditionalOnProperty(name="runable.enabled",havingValue = "true")
读取配置文件中的runable.enabled,为true该Bean装配,否则不装配
4. @ConditionalOnClass(name = "com.google.gson.Gson")
表示类路径下存在Gson这个包的时候才装配
5.@ConditionalOnBean(name = "user")
根据容器中是否存在某个bean来进行装配
6.ConditionalOnMissingBean(name="user")
当容器中不存在bean时才装配

course4 课程4 Spring Boot @Enable*注解的工作原理

1.@EnableConfigurationProperties注解
用来启用一个特性的,这个特性就是,可以把配置文件的属性注入到bean里面去,和@ConfigurationProperties一起使用

2.@EnableAsync启用异步,一般适合@Async一起使用

3.@Enable的工作原理在于引入一个或者多个配置
@Enable中做重要的注解在于@import将Bean装配导入到spring容器,@Enable内部就是导入一个配置类

4.@import用来导入一个或者多个类(bean会被Spring容器所托管)或者配置类(配置类中的bean都会被spring容器所托管)

5.ImportSelector
其中有一个selectImports方法,方法的返回值必须是一个class(全称),该class会被spring容器所托管起来

6.ImportBeanDefinitionRegistrar
通过实现这个接口的registerBeanDefinitions方法,调用一下代码:
 BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(User.class);
 registry.registerBeanDefinition("user", beanDefinitionBuilder.getBeanDefinition());

course5 课程5 Spring Boot 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值