Spring Boot

方志朋 2020-05-01

谈谈对SpringBoot的认识(Spring 和 Spring Boot 有什么区别?)

Spring框架是一个轻量级的企业级开发的一站式解决方案,提供了IoC容器、AOP、数据访问、Web开发、消息、测试等相关技术的支持,这些模块的出现,大大的缩短了应用程序的开发时间,同时提高了应用开发的效率。

Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生目的是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持,是一种遵循“习惯优于配置”原则的框架。

Spring Boot有哪些优点(特性)?为什么要用Spring Boot?

1)更快速的构建能力,Spring Boot 提供了更多的 Starters 用于快速构建业务框架,Starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找依赖包。

例如在 Spring 中如果要创建 Web 应用程序的最小依赖项为:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>xxx</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>xxx</version>
</dependency>

 而 Spring Boot 只需要一个依赖项就可以来启动和运行 Web 应用程序。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 当我们添加了 Starter 模块支持之后,在项目的构建期,它就会把所有其他依赖项将自动添加到项目中。

常见的 Starters 有以下几个:

spring-boot-starter-test
spring-boot-starter-web
spring-boot-starter-data-jpa
spring-boot-starter-thymeleaf

2)起步依赖,也就是在创建 Spring Boot 时可以直接勾选依赖模块,这样在项目初始化时就会把相关依赖直接添加到项目中,大大缩短了查询并添加依赖的时间。

Spring Boot

3)内嵌容器支持,Spring Boot 内嵌了 Tomcat、Jetty、Undertow 三种容器,其默认嵌入的容器是 Tomcat,我们启动 Spring Boot 项目的时候,在控制台上就能看到。

Spring Boot

 我们可以通过修改 pom.xml 来移除内嵌的 Tomcat 更换为其他的容器,比如更换为 Jetty 容器,配置如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移处 Tomcat -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 移处 jetty 容器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

当我们添加完成之后,再重新生成 pom.xml 文件,然后再启动 Spring Boot 项目容器信息就为我们指定的Jetty 容器启动了,如下所示:

Spring Boot

4)Actuator [?æktju?e?t?r] 监控,Spring Boot 自带了 Actuator 监控功能,主要用于提供对应用程序监控,以及控制的能力,比如监控应用程序的运行状况,或者内存、线程池、Http 请求统计等,同时还提供了关闭应用程序等功能。

Actuator 提供了 19 个接口,接口请求地址和代表含义如下表所示:

Spring Boot

SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

SpringBoot的核心注解是@SpringBootApplication,由以下3个注解组成:

(1)@SpringBootConfiguration:它组合了Configuration注解实现了配置文件的功能。

(2)@EnableAutoConfiguration:打开自动配置功能,也可以关闭某个指定的自动配置选项。

(3)@ComponentScan:Spring扫描组件。

Spring Boot

常见面试题:

(1)为什么现在越爱越多的公司用Spring Boot?(蓝月亮1年)

(2)SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?(蓝月亮1年)

参考好文:

(1)《Spring Boot实战》-- 汪云飞 编著

(2)拉钩教育 -- https://kaiwu.lagou.com/course/courseInfo.htm?courseId=59#/detail/pc?id=1774

相关推荐