美文网首页
Spring Boot 面试,不被干趴下!

Spring Boot 面试,不被干趴下!

作者: 伯雅之英 | 来源:发表于2019-04-16 19:23 被阅读0次

    随着Spring Boot的面世已经有几年了,给程序员带来的最直观的感受是配置减少了。至于Spring Boot的核心功能和原理,很少人能答上来。为了在互联网寒冬中能找到工作。今天根据所学发表下关于spring Boot的愚见,下面以考官和面试者的场景展开。

    这是面试官的问题:

    我看你上面写了熟悉 Spring Boot,那你能讲下为什么我们要用 Spring Boot 吗?

    下面我列几个最常见的三个回答:

    A:Spring Boot 最主要是不用 XML 配置,可以用 Java 来配置 bean,省去了许多配置文件。

    面试官又问:Spring 本身就可以用 Java 配置代替 XML 配置,和 Spring Boot 有什么关系呢?

    然后对方就吱吱唔唔了……

    B:Spring Boot 我们用来做 Spring Cloud 微服务。

    面试官又问:微服务和 Spring Boot 有什么关系?不用 Spring Boot 行不行?

    然后对方就吱吱唔唔了……

    C:Spring Boot 可以打 jar 包部署,内部集成了Tomcat。

    这个确实是 Spring Boot 的特色,但是我还是觉得没有答到关键点上。

    然后我继续问,如果不考虑打 jar 包部署呢,然后就没然后了……

    为什么我们要用 Spring Boot,显然上面三个求职者没有答到关键点上,Spring Boot 最重要的功能是:自动配置。

    为什么说是自动配置?

    Spring Boot 的开启注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:

    @Configuration

    @ComponentScan

    @EnableAutoConfiguration

    上面三个注解,前面两个都是 Spring 自带的,和 Spring Boot 无关,所以说上面的回答的不是在点上。

    所以说 Spring Boot 最最核心的就是这个 @EnableAutoConfiguration 注解了,它能根据类路径下的 jar 包和配置动态加载配置和注入bean。

    举个例子,比如我在 lib 下放一个 druid 连接池的 jar 包,然后在 application.yml 文件配置 druid 相关的参数,Spring Boot 就能够自动配置所有我们需要的东西,如果我把 jar 包拿掉或者把参数去掉,那 Spring Boot 就不会自动配置。

    这样我们就能把许多功能做成公共的自动配置的启动器(starters),其实 druid 连接池就是这么做的,它提供了针对 Spring Boot 的启动器:druid-spring-boot-starter。

    有了这个自动配置的启动器,我们就能非常简单的使用它,

    <dependency>

      <groupId>com.alibaba</groupId>

      <artifactId>druid-spring-boot-starter</artifactId>

      <version>1.1.10</version>

    </dependency>

    再添加相关参数:

    spring.datasource.url=

    spring.datasource.username=

    spring.datasource.password=

    ……

    如果是传统的项目,我们要自己手动写一大堆的配置,而且还不灵活,有了这个启动器,我们就可以做到简单集成。具体大家可以看 druid-spring-boot-starter 是怎么实现的。

    所以,这才是 Spring Boot 的核心,这才是我们为什么使用 Spring Boot 的原因。如果答不到这个关键点,那真没有掌握到 Spring Boot 的核心所在。

    最后:欢迎各位学习java和大数据的朋友们加入Java交流学习群: 721506929(我在群里等你哟~一起来学习吧)

    点击链接加入群聊【java交流学习群】:https://jq.qq.com/?_wv=1027&k=5cjelsQ,群内提供免费的架构资料还有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的免费直播讲解 可以进来一起学习交流哦~

    相关文章

      网友评论

          本文标题:Spring Boot 面试,不被干趴下!

          本文链接:https://www.haomeiwen.com/subject/hseiwqtx.html