SpringBoot面试题总结1

Spring Boot、Spring MVC 和 Spring 有什么区别?
  • Spring
    Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。
    当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。
  • Spring MVC
    Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
  • SpringBoot
    Spring 和 SpringMVC 的问题在于需要配置大量的参数。
    Spring Boot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,Spring Boot 提供了一些非功能性特征。
springboot的核心功能与使用优点?
  • 核心功能:
    springboot项目为独立运行的spring项目,java -jar xx.jar即可运行.
    内嵌servlet容器(可以选择内嵌: tomcat ,jetty等服务器.).
    提供了starter的pom 配置 简化了 maven的配置.
    自动配置spring容器中的bean.当不满足实际开发场景,可自定义bean的自动化配置.
    准生产的应用监控(基于: ssh , http , telnet 对服务器运行的项目进行监控.).
    springboot无需做出xml配置,也不是通过代码生成来实现(通过条件注解.).
  • 使用优点:
    快速搭建项目,
    与主流框架集成无需配置集成.
    内嵌服务容器.
    具有应用监控.
    开发部署方便,后期与云计算平台集成方便.
如何重新加载Spring Boot上的更改,而无需重新启动服务器?
  • 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。
  • Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。
  • 开发人员可以重新加载Spring Boot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot在发布它的第一个版本时没有这个功能。
  • 这是开发人员最需要的功能。DevTools模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。
Spring Boot中的监视器是什么?
  • Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。
  • 有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。
SpringBoot starter 作用在什么地方?
  • 依赖管理是所有项目中至关重要的一部分。当一个项目变得相当复杂,管理依赖会成为一个噩梦,因为当中涉及太多 artifacts 了。
  • 这时候 SpringBoot starter 就派上用处了。每一个 stater 都在扮演着提供我们所需的 Spring 特性的一站式商店角色。其他所需的依赖以一致的方式注入并且被管理。
  • 所有的 starter 都归于 org.springframework.boot 组中,并且它们都以由 spring-boot-starter- 开头取名。这种命名方式使得我们更容易找到 starter 依赖,特别是当我们使用那些支持通过名字查找依赖的 IDE 当中。
  • 比如说其中最常用的是:
    spring-boot-starter:核心 starter,包括自动化配置支持,日志以及 YAML
    spring-boot-starter-aop:Spring AOP 和 AspectJ 相关的切面编程 starter
    spring-boot-starter-data-jpa:使用 Hibernate Spring Data JPA 的 starter
    spring-boot-starter-jdbc:使用 HikariCP 连接池 JDBC 的 starter
    spring-boot-starter-security:使用 Spring Security 的 starter
    spring-boot-starter-test:SpringBoot 测试相关的 starter
    spring-boot-starter-web:构建 restful、springMVC 的 web应用程序的 starter
有什么外部配置的可能来源?
  • SpringBoot 对外部配置提供了支持,允许我们在不同环境中运行相同的应用。我们可以使用 properties 文件、YAML 文件、环境变量、系统参数和命令行选项参数来声明配置属性。
  • 然后我们可以通过 @Value 这个通过 @ConfigurationProperties 绑定的对象的注解或者实现 Enviroment 来访问这些属性。
  • 以下是最常用的外部配置来源:
    命令行属性:命令行选项参数是以双连字符(例如,=)开头的程序参数,例如 –server.port=8080。SpringBoot将所有参数转换为属性并且添加到环境属性当中。
    应用属性:应用属性是指那些从 application.properties 文件或者其 YAML 副本中获得的属性。默认情况下,SpringBoot会从当前目录、classpath 根目录或者它们自身的 config 子目录下搜索该文件。
    特定 profile 配置:特殊概要配置是从 application-{profile}.properties 文件或者自身的 YAML 副本。{profile} 占位符引用一个在用的 profile。这些文件与非特定配置文件位于相同的位置,并且优先于它们。
SpringBoot的 Actuator 是做什么的?
  • 本质上,Actuator 通过启用 production-ready 功能使得 SpringBoot 应用程序变得更有生命力。这些功能允许我们对生产环境中的应用程序进行监视和管理。
  • 集成 SpringBoot Actuator 到项目中非常简单。我们需要做的只是将 spring-boot-starter-actuator starter 引入到 POM.xml 文件当中。
  • SpringBoot Actuaor 可以使用 HTTP 或者 JMX endpoints来浏览操作信息。大多数应用程序都是用 HTTP,作为 endpoint 的标识以及使用 /actuator 前缀作为 URL路径。
  • 这里有一些常用的内置 endpoints Actuator:
    auditevents:查看 audit 事件信息
    env:查看 环境变量
    health:查看应用程序健康信息
    httptrace:展示 HTTP 路径信息
    info:展示 arbitrary 应用信息
    metrics:展示 metrics 信息
    loggers:显示并修改应用程序中日志器的配置
    mappings:展示所有 @RequestMapping 路径信息
    scheduledtasks:展示应用程序中的定时任务信息
    threaddump:执行 Thread Dump

你可能感兴趣的:(SpringBoot面试题总结1)