面试题一Spring Boot

面试题一Spring Boot

  1. 什么是Spring Boot?

    Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简化了繁重的配置,提供了各种启动器,开发者能快速上手。

  2. 为什么要用Spring Boot?

    Spring Boot优点非常多,如:

    • 独立运行:内嵌了各种servlet容器,Tomcat、Jetty等,只需要打成一个可执行的jar包就能独立运行
    • 简化配置:spring-boot-starter-web启动器自动依赖其他组件,减少了maven的配置。
    • 自动配置:能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
    • 无代码生成和XML配置:配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
  3. Spring Boot的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot的核心配置文件是application和bootstrap配置文件

    application配置文件主要用于Spring Boot项目的自动化配置。

    bootstrap 配置文件具有以下几个特性:

    • boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
    • boostrap 里面的属性不能被覆盖

    bootstrap配置文件有以下几个应用场景:

    • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
    • 一些固定的不能被覆盖的属性;
    • 一些加密/解密的场景;
  4. Spring Boot的配置文件有哪几种格式?他们有什么区别?

    .properties和.yml,它们的区别主要是书写格式不同

    • .properties

      app.user.name = java
      
    • .yml

      app:
      	user:
      		name:java
      

      .yml 格式不支持 @PropertySource 注解导入配置。

  5. Spring Boot的核心注解是哪个?它主要由哪几个注解组成?

    启动类上的注解@SpringBootApplication,主要包含以下三个注解:

    • @SpringBootConfiguration;组合了@Configuration注解,实现配置文件的功能。

    • @EnableAutoConfiguration:打开自动化配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:

      
      
    • @ComponentScan:Spring组件扫描

  6. 开启Spring Boot特性有几种方式?

    1. 继承spring-boot-starter-parent项目
    2. 导入spring-boot-dependencies项目依赖
  7. 在Spring启动应用程序中配置日志记录的方法是什么?

    开发人员可以在application.properties文件中轻松指定日志记录级别:

    
    

    应用程序属性文件中的这一行将让spring框架记录到调试级别。
    如果开发人员想要将日志放入文件,他可以在应用程序属性中指定logger.file

    Logging.file = $ {java.io.tempdirectory} /sample.log

    除了上述两种方法之外,开发人员还可以在main / java / resources下创建logback.xml文件,并在文件中指定日志记录配置。 Spring启动会自动选择这个文件。

  8. 如何理解Spring boot中的starters?

    starters是什么:

    ​ 可以理解为启动器,它办好一系列可以集成到应用里的依赖包,你可以一站式集成Spring及其他技术,不需要到处找依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。

    starters命名:

    ​ Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。第三方的启动器不能以spring-boot开头命名,它们都被Spring Boot官方保留。一般一个第三方的应该这样命名,像mybatis的mybatis-spring-boot-starter。

  9. Spring Boot实现热部署有哪几种方式?

    1. 引用devtools依赖:

      <dependency>
      	<groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
          <optional>true</optional>
      </dependency>
      
    2. 自定义配置热部署:

      #热部署开关,false即不启动热部署
      spring.devtools.restart.enabled:true
      
      #指定目录不更新
      spring.devtools.restart.exclude:test/**
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章