什么是 SpringBoot?为什么要用 SpringBoot?

简介: 什么是 SpringBoot?为什么要用 SpringBoot,2、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?,3、运行 Spring Boot 有哪几种方式?,4、如何理解 Spring Boot 中的 Starters?,5、如何在 Spring Boot 启动的时候运行一些特定的代码?,6、Spring Boot 需要独立的容器运行吗?,7、Spring Boot 中的监视器是什么?,8、如何使用 Spring Boot 实现异常处理?,9、你如何理解 Spring Boot 中的 Starters?,10、springboot 常用的 starter 有哪些.

1、什么是 SpringBoot?为什么要用 SpringBoot
用来简化 spring 应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties 或 yml 文件)
创建独立的 spring 引用程序 main 方法运行
嵌入的 Tomcat 无需部署 war 文件简化 maven 配置
自动配置 spring 添加对应功能 starter 自动化配置
spring boot 来简化 spring 应用开发,约定大于配置,去繁从简,just run 就能创建一个独立的,产品级别的应用
Spring Boot 优点非常多,如:
一、独立运行
Spring Boot 而且内嵌了各种 servlet 容器,Tomcat、Jetty 等,现在不再需要打成 war 包部署到容器中,
Spring Boot 只要打成一个可执行的 jar 包就能独立运行,所有的依赖包都在一个 jar 包内。
二、简化配置
spring-boot-starter-web 启动器自动依赖其他组件,简少了 maven 的配置。
三、自动配置
Spring Boot 能根据当前类路径下的类、jar 包来自动配置 bean,如添加一个 spring-boot-starter-web
启动器就能拥有 web 的功能,无需其他配置。
四、无代码生成和 XML 配置
Spring Boot 配置过程中无代码生成,也无需 XML 配置文件就能完成所有配置工作,这一切都是借助
于条件注解完成的,这也是 Spring4.x 的核心功能之一。
五、应用监控
Spring Boot 提供一系列端点可以监控服务及应用,做健康检测。

2、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下

3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。 @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源 自
动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@ComponentScan:Spring 组件扫描。

3、运行 Spring Boot 有哪几种方式?
1)打包用命令或者放到容器中运行
2)用 Maven/Gradle 插件运行
3)直接执行 main 方法运行

4、如何理解 Spring Boot 中的 Starters?
Starters 是什么:
Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring 及
其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入 spring- boot-starter-data-jpa 启动器依赖就能使用了。Starters 包含了许多项目中需要用到的依赖,它们能快
速持续的运行,都是一系列得到支持的管理传递性依赖。
Starters 命名:
Spring Boot 官方的启动器都是以 spring-boot-starter-命名的,代表了一个特定的应用类型。第三方的
启动器不能以 spring-boot 开头命名,它们都被 Spring Boot 官方保留。一般一个第三方的应该这样命
名,像 mybatis 的 mybatis-spring-boot-starter。
Starters 分类:

  1. Spring Boot 应用类启动器

如何在 Spring Boot 启动的时候运行一些特定的代码?
如果你想在 Spring Boot 启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner 或者
CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法。
CommandLineRunner:启动获取命令行参数

5、如何在 Spring Boot 启动的时候运行一些特定的代码?
如果你想在 Spring Boot 启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner 或者
CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个 run 方法。
CommandLineRunner:启动获取命令行参数

6、Spring Boot 需要独立的容器运行吗?
可以不需要,内置了 Tomcat/ Jetty 等容器。

7、Spring Boot 中的监视器是什么?
Spring boot actuator 是 spring 启动框架中的重要功能之一。Spring boot 监视器可帮助您访问生产环
境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用
程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为 HTTP URL 访
问的 REST 端点来检查状态。

8、如何使用 Spring Boot 实现异常处理?
Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。 我们通过实现一个
ControlerAdvice 类,来处理控制器类抛出的所有异常。
9、你如何理解 Spring Boot 中的 Starters?
Starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及
其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入
spring-boot-starter-data-jpa 启动器依赖就能使用了。

10、springboot 常用的 starter 有哪些
spring-boot-starter-web 嵌入 tomcat 和 web 开发需要 servlet 与 jsp 支持
spring-boot-starter-data-jpa 数 据 库 支 持
spring-boot-starter-data-redis redis 数据库支持
spring-boot-starter-data-solr solr 支持
mybatis-spring-boot-starter 第三方的 mybatis 集成 starter

11、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
pring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景。
使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心
的配置属性来加载外部配置中心的配置信息;
一些固定的不能被覆盖的属性;
一些加密/解密的场景;

12、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式 tomcat 将重新启动。
Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开发人员面临的
一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。
开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的
需要。Spring Boot 在发布它的第一个版本时没有这个功能。
这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。 它
还提供 H2 数据库控制台以更好地测试应用程序。
org.springframework.boot
spring-boot-devtools
true

13、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 的问题在于需要配置大量的参数。
Spring Boot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,
Spring Boot 提供了一些非功能性特征。

14、能否举一个例子来解释更多 Staters 的内容?
让我们来思考一个 Stater 的例子 -Spring Boot Stater Web。
如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序。Spring Boot Start Web 是首选。
让我们使用 Spring Initializr 创建一个 Spring Boot Start Web 的快速项目。
Spring Boot Start Web 的依赖项

15、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 服务;

相关文章
|
2月前
|
Java 数据库
SpringBoot整合tkMapper
SpringBoot整合tkMapper
19 0
|
7月前
|
负载均衡 监控 Dubbo
91.【SpringBoot-03】(二)
91.【SpringBoot-03】
42 0
|
7月前
|
安全 Java 数据库
89.【SpringBoot-02】(四)
89.【SpringBoot-02】
44 0
|
6月前
|
Java 应用服务中间件 容器
|
7月前
|
Java 数据格式 微服务
springboot系列知识
Spring Boot都很熟悉了,再重新认识学习一遍。
54 0
|
7月前
|
JSON JavaScript Java
87.【SpringBoot-01】(七)
87.【SpringBoot-01】
34 0
|
7月前
|
存储 监控 Dubbo
91.【SpringBoot-03】(三)
91.【SpringBoot-03】
49 0
|
7月前
|
XML Java 数据格式
87.【SpringBoot-01】(五)
87.【SpringBoot-01】
45 0
|
10月前
|
前端开发 Java 测试技术
SpringBoot相关知识
SpringBoot相关知识
32 0
|
10月前
|
druid Java 关系型数据库
SpringBoot | 整合
SpringBoot | 整合