pom.xml
spring-boot-dependencies 存放了核心依赖在父工程中
我们再写或者引入一些springboot依赖的时候,不需要指定版本,因为有这些版本仓库
启动器
就是springboot的启动场景
比如spring-boot-starter-web 他就会帮我们自动导入web环境所有的依赖
springboot会将所有功能场景,都变成一个个的启动器
我们想要使用什么功能,找到对应的启动器 ‘starter’
主程序
@SpringBootApplication 标注这个类是一个springboot的应用
SpringApplication.run(Springboot01HelloworldApplication.class, args);
是一个静态方法,将这个springboot启动
注解SpringBootApplication
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
@SpringBootConfiguration
Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
springboot的配置
@Configuration代表 spring配置类
说明是一个spring的组件
@EnableAutoConfiguration
自动导入配置
@AutoConfigurationPackage
自动配置包
@Import({AutoConfigurationImportSelector.class})
导入选择器
springboot所有自动配置都是在启动的时候扫描并加载:‘spring.factories’所有的配置类都在这里,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器了。有启动器,自动装配就会生效,就配置成功了。
springboot在启动的时候,从类路径下面的/meta-inf/spring.factories获取指定的值。
将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置
以前我们需要自动配置的东西,springboot帮我们配置完成了。
整合javaee,解决方案和自动配置的东西都在spring-boot-autocongfigure包下面
它会把所有需要的导入的组件,以类名的方式返回,这些组件就会被添加到容器
容器中会存在非常多的xxxAutoConfigure的文件(@Bean),就是这些类给容器中导入了这个场景需要的所有组件,