• 《面试宝典》 2019年springboot面试高频题(java)


    前言

    2019年已经成为了过去,借此机会想好好总结一下2019年项目研发的成效,看看在项目从无到有,都经历了那些变化?取得了哪些成果?踩过哪些坑?一个人、一个研发团队要想有质的飞跃,必须善于反思过去,总结经验,只有这样才能精准的定位问题并制定有效的改进措施。

    1、什么是 Spring Boot?

    “Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。


    用过springboot的社友应该都知道,搭建一个完整的spring项目,我们得配置依赖,配置spring的xml。其中一大难点,就是jar包冲突的问题。


    Spring Boot让我们更关注于业务逻辑的开发,大大的提高了我们的效率,是从事微服务开发必点的一个技能点。

    2、Spring Boot有哪些优点?

    避免大量的Maven导入和各种版本冲突
    减少开发学习时间,支持各种技术的start。
    提高内置的tomcat,可以直接运行。
    Spring Boot使监控变得简单(actuator)
    基于不同环境,使用对应的配置(dev,pro等等),再也不用像以前一样手动改配置咯。
    注意:springboot对于我们开发是方便了不少,但是,建议,我们先学习spring后,再来使用springboot,因为springboot是从spring上衍生出来的,不然,在springboot的学习过程中,会有点懵,不知道为什么要这样配置,底层是怎么样实现的。

    3、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

    .properties 和 .yml,它们的区别主要是书写格式不同,社长强烈推荐使用yml格式,有层次感,方面阅读。

    4、什么是 Spring Boot Stater ?

    Springboot方便的一个地方,就是内部封装了很多的Stater
    列举一些常用的Stater
    应用日志:spring-boot-starter-logging
    快速web应用开发:spring-boot-starter-web
    面向切面编程:spring-boot-starter-aop
    集成rabbitMQ:spring-boot-starter-amqp
    注意:集成过程中,springboot会默认一些配置,需要我们开发了解集成技术点的一些配置。

    5.创建一个 Spring Boot Project 的最简单的方法是什么?

    通过idea创建一个Spring Initializr项目,注意eclipse需要下载STS插件。

    6.springboot项目可以通过哪几种方式运行?

    1)打成jar包,通过java -jar  jar包名运行
    2) 打成war包,放入容器中运行,官网建议生产环境使用打成war包方式。

    7.springboot如何实现热部署?

    springboot默认是不默认启动热部署的,需要我们自己加入热部署的依赖,springboot有两个classloader存在,分工明确,一个辅助管理jar包,另外一个restartClassloader用来封装用户的代码,修改代码是会重启restartClassloader,当文件改动后,部分重启,所以重启效率相对于传统的ssm框架重启速度更快

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-devtools</artifactId>
       <optional>true</optional>
    </dependency>

    8. Spring Boot 如何定义多套不同环境配置?

    1)编写多个application.yml文件,以生产和本地为例子
    application.yml
    application-pro.yml
    application-dev.yml
    2)切换application.yml 里面对应的值
    spring:
      profiles:
        active: dev
    建议,通过分布式配置中心来进行管理,可以使用携程的apollo

    9. Spring Boot 最核心的 3 个注解详解?

    Springboot的一个入口就是main方法,我们可以观察到springboot项目的主类上必有一个@SpringBootApplication注解。实际上他等价于@Configuration,@EnableAutoConfiguration 和 @ComponentScan这三个注解的组合。


    @Configuation:

    加载Spring方法
    配置spring并启动spring容器

    @EnableAutoConfiguration 注解:

    点击这个注解,查看他的源码,发现他通过@import实现了@Import(AutoConfigurationImportSelector.class)

    @ComponentScan:

    描述表的扫描范围

    公众号:程序猿学社

    每周实时更新

  • 相关阅读:
    poj-2888-矩阵+polya
    hdu-2865-polya+dp+矩阵+euler函数
    poj-2154-polya+euler函数
    poj-1026-置换
    poj-2369-置换
    2017.2.15 开涛shiro教程-第二十一章-授予身份与切换身份(二) controller
    2017.2.13 开涛shiro教程-第十二章-与Spring集成(二)shiro权限注解
    2017.2.13 开涛shiro教程-第十二章-与Spring集成(一)配置文件详解
    2017.2.12 开涛shiro教程-第八章-拦截器机制
    2017.2.12 开涛shiro教程-第七章-与Web集成
  • 原文地址:https://www.cnblogs.com/myworked/p/12134528.html
Copyright © 2020-2023  润新知