文章目录
- 一、SpringBoot是什么?
- 二、什么事微服务
- 二、如何和面试官谈谈你对springboot的理解
- 总结
一、SpringBoot是什么?
springboot是一个微服务的框架,是基于spirng开发的一个javaweb框架,好处是能够简单的利于开发,springboot是被抽象出来开发的框架,目的是为了集成更多的中间件。
springboot框架是一种轻量级的框架,因为各种配置太过于繁琐,所有形成了约定大于配置的说法,这里的java是重javaEE(企业级开发)-->Spring-->springBoot(微服务阶段)的过程。
springboot默认把我们进行了很多的设置,我们只需要写少量的代码。他还继承了非常多的第三方配置(redis,MongoDB,RabbitMQ等等),几乎是可以达到开箱即用。
二、什么事微服务?
微服务架构打破了ll in one 的风格,all in one就是把所有的功能放到一个单元里面,部署到一个服务器上,负载能力不行,我们要进行负载均衡。微服务就是把每个功能元素独立出来,然后把这些元素进行动态整合,应用。
springboot(构建一切)-springcloud(协调一切)-springcluod data flow(链接一切)
三、面试官要你谈谈springboot
我们可以首先谈两点
第一点是从springboot的自动装配开始
@SpringBootApplication(标准这个是一个spring的应用)这个配置里面有
四个基本配置和
@SpringBootConfiguration里面有
@Configuration
@EnableAutoConfiguration(自动导入包)里面有
@AutoConfigurationPackage里面
@Import({Registrar.class})(自动注册表)
@Import({AutoConfigurationImportSelector.class})(自动导入包的核心)里面有
AutoConfigurationImportSelector()//选择了什么东西
getAutoConfigurationEntry()//获得自动配置的实体
getAutoConfigurationEntry()//调用getCandidateAutoConfiguration()获取候选配置
getCandidateAutoConfiguration()//里面标注了EnalbeAutoConfiguration注解类
public static listloadFactoryNames:获取所有加载配置
LoadSpringFactory//获取资源
classLoader.getResources()//获取项目资源
classLoader.getSystemResources()//获取系统资源 从这里“META-INF/spring.factories"获取配置
spring.factories所有的配置都在里面,需要导入对应得start才能生效
@ComponentScan(扫描当前启动类同级的包)
springboot在启动时会从META-INF/spring.factories获取指定的数值,配置会被导入到容器,然后帮我们自动配置。
第二点就是run方法
1.推断是普通的项目还是web项目。
2.加载所有的初始化器,找出所有程序的监听器,监听上下文处理所有的bean。
3.推断当前的主类。
总结
spring所有配置在扫描的时候加载,所有的配置都在spring.factories里面,只要我们拥有了对应的start就会有对应的启动器,有了启动器我们配置才会生效。