一、什么是SpringBoot
SpringBoot是基于Spring开发的,是约定大于配置的核心思想。并且集成了大量的第三方库配置比如redis、mongoDB、jpa等。SpringBoot就相当于maven整合了所有jar包,SpringBoot整合了所有框架。其设计目的是用来简化新Spring应用的初始搭建以及开发过程,并不少什么新的框架。
二、SpringBoot优点
优点其实就是简单、快速
快速创建独立运行的Spring项目以及主流框架集成使用嵌入式的server容器,应用无需打成WAR包starters自动依赖与版本控制有大量的自动配置,简化开发准生产环境运行应用监控与云计算的天然集成SpringBoot主程序分析
//
SpringBootApplication标注这个类是一个Springboot的应用SpringBootApplicationpublicclassSpringboot02DemoApplication{publicstaticvoidmain(String[]args){//将Springboot应用启动SpringApplication.run(Springboot02DemoApplication.class,args);}}SpringBootApplication源码剖析,进入源码,结果发现其实它是一个组合注解
第一个SpringBootConfiguration注解:
SpringBootConfiguration--是SpringBoot配置类。下面有一个叫Configuration:它是配置类,下面又有Component,其实它就是一个注入组件。第二个
EnableAutoConfiguration注解:是开启自配配置功能AutoConfigurationPackage//自动配置包Import(AutoConfigurationImportSelector.class)publicinterfaceEnableAutoConfiguration{}AutoConfigurationPackage:自动配置包,使用Import(AutoConfigurationImportSelector.class)注解来完成的,它是springboot底层注解,作用是给容器中导入组件。自动配置原理
(1)SpringBoot启动的时候首先加载主配置类,开启啦自动配置的功能(
EnableAutoConfiguration)(2)自动配置功能
EnableAutoConfiguration的作用:它是利用了Import(AutoConfigurationImportSelector.class)给容器中导入一些组件。那么,他会给我们导入哪些组件呢?进入AutoConfigurationImportSelector源码看一下部分源码如下。//
EnableAutoConfiguration注解AutoConfigurationPackage/Import(AutoConfigurationImportSelector.class)publicinterfaceEnableAutoConfigurationImport(AutoConfigurationImportSelector.class)自动配置导入选择publicclassAutoConfigurationImportSelectorimplementsDeferredImportSelector,BeanClassLoaderAware,ResourceLoaderAware,BeanFactoryAware,EnvironmentAware,Ordered{//----部分源码省略----//protectedAutoConfigurationEntrygetAutoConfigurationEntry(AnnotationMetadataannotationMetadata){ if(!isEnabled(annotationMetadata)){ returnEMPTY_ENTRY; } AnnotationAttributesattributes=getAttributes(annotationMetadata); ListStringconfigurations=getCandidateConfigurations(annotationMetadata,attributes);//----部分源码省略----//}
ListStringconfigurations=getCandidateConfigurations(annotationMetadata,attributes);是获取候选的配置,也就是获取所有配置。
getCandidateConfigurations//获取候选配置,核心方法
AutoConfigurationPackage自动配置包Import(AutoConfigurationPackages.Registrar.class)//导入选择器,包注册publicinterfaceAutoConfigurationPackage{}总结
(1)、SpringBoot启动会加载大量的自动配置类
(2)我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
(3)我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
(4)给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。
需要Java、大数据、框架、Redis等学习视频以及电子版,
转载请注明:http://www.0431gb208.com/sjsbszl/1226.html