1.SpringBoot配置优先级
2.Bean管理
2.1Bean的作用域 @Scope("prototype") singleton
单例:项目启动时创建一次对象,存到IOC容器中
多例:使用时创建对象,每使用一次就创建一次
2.2第三方Bean @Bean 默认名称为方法名
第三方提供的Bean:构造函数
启动类:定义方法,返回值为声明的Bean的类型,加上@Bean注解,项目启动时,调用该方法,并将方法的返回值交给IOC容器管理,成为IOC容器的Bean对象,默认名称为方法名。由于该Bean依赖已经声明的另一个Bean,在方法的形参上声明依赖的Bean,IOC容器自动会找到依赖的Bean,并传递过来
声明的Bean对象
配置类中集中管理第三方Bean
3.SpringBoot原理
3.1起步依赖原理
Meaven中的依赖传递
3.2自动配置
3.2.1两种方案 @EnableXxxx注解 /@Import(Xxx.class) @Component + @ComponentScan("包名")
方案一:@Component + @ComponentScan("包名")
方案二:@EnableXxxx注解:封装了import @Import(Xxx.class)
3.2.2自动配置-源码追踪 @EnableAutoConfiguration @ConditionalOnMissingBean
@Conditional:父注解
@ConditionalOnClass(Xxx.class):环境中是否有对应的字节码文件
@ConditionalOnMissingBean:环境中是否有对应的Bean
@ConditionalOnProperty(name="xxx",havingValue="xxx"):配置文件中是否有对应的属性和值
3.2.3自定义starter
1.创建auoconfigure模块
自动配置类
定义自动配置文件
2.在starter中引入autoconfigure模块
3.在测试类中引入starter,由于依赖传递,会自动引入autoconfigure
测试使用
评论前必须登录!
注册