SpringBOOT面试浅谈

文章目录

  • 一、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就会有对应的启动器,有了启动器我们配置才会生效。

你可能感兴趣的:(spring,spring)