Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力!

问题一

Spring Boot、Spring MVC 和 Spring 有什么区别?

1、Spring

Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。

当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。

2、Spring MVC

Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。

3、SpringBoot

Spring 和 SpringMVC 的问题在于需要配置大量的参数。

SpringBoot 面试宝典_SpringBoot

Spring Boot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,

java项目案例 www.1b23.com   Spring Boot 提供了一些非功能性特征。

问题二

什么是自动配置?

Spring 和 SpringMVC 的问题在于需要配置大量的参数。

SpringBoot 面试宝典_SpringBoot_02

我们能否带来更多的智能?当一个 MVC JAR 添加到应用程序中的时候,我们能否自动配置一些 beans?

Spring 查看(CLASSPATH 上可用的框架)已存在的应用程序的配置。在此基础上,Spring Boot 提供了配置应用程序和框架所需要的基本配置。这就是自动配置。

问题三

什么是 Spring Boot Stater ?

启动器是一套方便的依赖没描述符,它可以放在自己的程序中。你可以一站式的获取你所需要的 Spring 和相关技术,而不需要依赖描述符的通过示例代码搜索和复制黏贴的负载。

例如,如果你想使用 Sping 和 JPA 访问数据库,只需要你的项目包含 spring-boot-starter-data-jpa 依赖项,你就可以完美进行。 

问题四

你能否举一个例子来解释更多 Staters 的内容?

让我们来思考一个 Stater 的例子 -Spring Boot Stater Web。

如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序。Spring Boot Start Web 是首选。让我们使用 Spring Initializr 创建一个 Spring Boot Start Web 的快速项目。

Spring Boot Start Web 的依赖项

SpringBoot 面试宝典_SpringBoot_03

下面的截图是添加进我们应用程序的不同的依赖项

SpringBoot 面试宝典_SpringBoot_04

依赖项可以被分为:

  • Spring - core,beans,context,aop

  • Web MVC - (Spring MVC)

  • Jackson - for JSON Binding

  • Validation - Hibernate,Validation API

  • Enbedded Servlet Container - Tomcat

  • Logging - logback,slf4j

任何经典的 Web 应用程序都会使用所有这些依赖项。Spring Boot Starter Web 预先打包了这些依赖项。

作为一个开发者,我不需要再担心这些依赖项和它们的兼容版本。

问题五

Spring Boot 还提供了其它的哪些 Starter Project Options?

Spring Boot 也提供了其它的启动器项目包括,包括用于开发特定类型应用程序的典型依赖项。

  • spring-boot-starter-web-services - SOAP Web Services;

  • spring-boot-starter-web - Web 和 RESTful 应用程序;

  • spring-boot-starter-test - 单元测试和集成测试;

  • spring-boot-starter-jdbc - 传统的 JDBC;

  • spring-boot-starter-hateoas - 为服务添加 HATEOAS 功能;

  • spring-boot-starter-security - 使用 SpringSecurity 进行身份验证和授权;

  • spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA;

  • spring-boot-starter-data-rest - 使用 Spring Data REST 公布简单的 REST 服务;

问题六

Spring 是如何快速创建产品就绪应用程序的?

Spring Boot 致力于快速产品就绪应用程序。为此,它提供了一些譬如高速缓存,日志记录,监控和嵌入式服务器等开箱即用的非功能性特征。

spring-boot-starter-actuator - 使用一些如监控和跟踪应用的高级功能

spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 选择您的特定嵌入式 Servlet 容器

spring-boot-starter-logging - 使用 logback 进行日志记录

spring-boot-starter-cache - 启用 Spring Framework 的缓存支持

###Spring2 和 Spring5 所需要的最低 Java 版本是什么?

Spring Boot 2.0 需要 Java8 或者更新的版本。Java6 和 Java7 已经不再支持。

推荐阅读:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes

问题七

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

Spring Initializr是启动 Spring Boot Projects 的一个很好的工具。

SpringBoot 面试宝典_SpringBoot_05

就像上图中所展示的一样,我们需要做一下几步:

  • 登录 Spring Initializr,按照以下方式进行选择:

  • 选择 com.in28minutes.springboot 为组

  • 选择 studet-services 为组件

  • 选择下面的依赖项

  • Web

  • Actuator

  • DevTools

  • 点击生 GenerateProject

  • 将项目导入 Eclipse。文件 - 导入 - 现有的 Maven 项目

问题八

Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?

不是的。

Spring Initiatlizr 让创建 Spring Boot 项目变的很容易,但是,你也可以通过设置一个 maven 项目并添加正确的依赖项来开始一个项目。

在我们的 Spring 课程中,我们使用两种方法来创建项目。

第一种方法是 start.spring.io 。
另外一种方法是在项目的标题为“Basic Web Application”处进行手动设置。

手动设置一个 maven 项目

这里有几个重要的步骤:

  • 在 Eclipse 中,使用文件 - 新建 Maven 项目来创建一个新项目

  • 添加依赖项。

  • 添加 maven 插件。

  • 添加 Spring Boot 应用程序类。

到这里,准备工作已经做好!

问题九

为什么我们需要 spring-boot-maven-plugin?

spring-boot-maven-plugin 提供了一些像 jar 一样打包或者运行应用程序的命令。

  • spring-boot:run 运行你的 SpringBooty 应用程序。

  • spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可执行

  • spring-boot:start 和 spring-boot:stop 管理 Spring Boot 应用程序的生命周期(也可以说是为了集成测试)。

  • spring-boot:build-info 生成执行器可以使用的构造信息。

问题十

如何使用 SpringBoot 自动重装我的应用程序?

使用 Spring Boot 开发工具。

把 Spring Boot 开发工具添加进入你的项目是简单的。

把下面的依赖项添加至你的 Spring Boot Project pom.xml 中

SpringBoot 面试宝典_SpringBoot_06

重启应用程序,然后就可以了。