- 课程名称:Spring Boot3.0最新版入门与商品特征打标实战
- 课程链接:Spring Boot3.0最新版入门与商品特征打标实战
- 章节名称:
- 第2章:基础入门
- 2-6:SpringBoot如何实现自动装配(上)
- 2-7:SpringBoot如何实现自动装配(下)
- 讲师姓名:
Er十七
- 第2章:基础入门
- 时间:2023-02-26 23:30
课程内容
- @SpringBootApplication注解是集成注解,其内部还有很多注解共同组成
- @SpringBootConfiguration
- @Configuration这个注解可以结合@Bean,将在注解了这个类的生成的对象加入AOP容器中
- @EnableAutoConfiguration,开启自动装配
- @AutoConfigurationPackage
- @Import(AutoConfigurationImportSelector.class)这是一个关键注解
- AutoConfigurationImportSelector类实现了DeferredImportSelector
- DeferredImportSelector接口继承自ImportSelector
- 这是Spring提供的扩展点,要实现其selectImports方法,该方法返回要实现类的全路径名称
- 实现selectImports方法内容
- 如果没有开启自动装配,则返回空数组
- 否则执行getAutoConfigurationEntry方法
- getCandidateConfigurations获取配置项
- ImportCandidates.load方法,开始解析.import文件中的类,并加载到Sping容器中
- getCandidateConfigurations获取配置项
- DeferredImportSelector接口继承自ImportSelector
- AutoConfigurationImportSelector类实现了DeferredImportSelector
- 启动main方法中代码:SpringApplication.run(MyApplication.class, args)
- return new SpringApplication(primarySources).run(args);
- getSpringFactoriesInstances方法
- forDefaultResourceLocation方法
- forResourceLocation(spring.factories文件名, classLoader);
- loadFactoriesResource方法,来加载spring.factories中列举的配置类
- forResourceLocation(spring.factories文件名, classLoader);
- 将这些配置类生成的数组放入factories属性中
- forDefaultResourceLocation方法
- getSpringFactoriesInstances方法
- return new SpringApplication(primarySources).run(args);
- @SpringBootConfiguration
学习心得
学习这么多类的跳转,方法的调用,直接晕掉