一:SpringBoot的核心理念 三大核心:
1:能够实现帮助开发者快速的整合第三方框架 Spring、mybatis
原理:maven 帮我们进行封装的 和自定义的starter
springbott start 就是快速整合第三方框架依赖
2:完全去除xml配置,采用注解形式
原理:SpringBoot其实根据Spring体系原生的注解实现包装
3:不需要外部容器,内嵌如服务器(tomcat)
原理:Java语言创建tomcat服务器, 然后将本地的class文件交给tomcat加载
SpringBoot的启动原理:
SpringBoot进行选择器注册 到指定的文件名的
//方式一 // SpringApplication.run(DataSourceApplication.class,args); //方式二 // ConfigurableApplicationContext applicationContext = SpringApplication.run(DataSourceApplication.class); // applicationContext.getBean("") //方式三 // new SpringApplication(DataSourceApplication.class).run(args); //方式四 SpringApplication springApplication = new SpringApplication(DataSourceApplication.class); ConfigurableApplicationContext run = springApplication.run(args); String[] beanDefinitionNames = run.getBeanDefinitionNames(); for (int i = 0; i < beanDefinitionNames.length; i++) { System.out.println(beanDefinitionNames[i]); } /** * 源码分析: * 1: this.webApplicationType = WebApplicationType.deduceFromClasspath(); * 进行判断是 none 还是 web服务器 还是响应式服务器 * 在application.yml 里面 进行增加 * spring.main.web-application-type: none|REACTIVE|SERVLET * * 2: ApplicationContextInitializer【在web-inf 里面的 spring.factories】 * 3: ApplicationListener【spring.factories】 * 4: 加载启动配置类名字:this.mainApplicationClass = deduceMainApplicationClass(); * 5: Banner printedBanner = printBanner(environment); 打印横幅 * enableSpringApplication 进行加载第三方配置 * * * */