Spring Boot 简介

对于做 Java 开发的程序员,Spring 是一个绕不开的框架。现在几乎所有的 Java 项目都会使用 Spring 作为容器。但是大概两三年前有一个叫做 Spring Boot的“家伙”横空出世,其风头好像一时盖过了 Spring。所有基于 Spring 开发的新项目都转向使用 Spring Boot 进行开发了。那么 Spring Boot 究竟是一个什么框架?和 Spring 又有什么关系?本篇博客就来对 Spring Boot 做一个简单介绍。

Spring Boot 简介

我们先来看下 Spring Boot 官网对这个框架的介绍:

Spring Boot makes it easy to create stand-alone,production-grade Spring-based Applications that you can run. We take an opinionated view of the Spring platform and third-party libraries,so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. You can use Spring Boot to create Java applications that can be started by using java -jar or more traditional war deployments. We also provide a command line tool that runs “spring scripts”.
Our primary goals are:
• Provide a radically faster and widely accessible getting-started experience for all Spring development.
• Be opinionated out of the box but get out of the way quickly as requirements start to diverge from the defaults.
• Provide a range of non-functional features that are common to large classes of projects (such as embedded servers,security,metrics,health checks,and externalized configuration).
• Absolutely no code generation and no requirement for XML configuration.

上面介绍的大概意思是:使用 Spring Boot 可以非常方便地创建生产级别的 Spring 应用;Spring Boot 提供了很多默认配置,但是程序员也可以非常方便的提供自己的配置;Spring Boot 可以大大减少甚至不使用传统 Spring 项目中的 XML 配置文件。

自己总结下:Spring Boot 其实并不是一个新的 Spring 框架,它进行了很多自动配置,目的是让用户能迅速开发基于 Spring 的应用,尽可能减少繁琐的Spring 配置,提升开发者的开发体验和开发效率。

Spring Boot 进行自动配置的原理是:根据开发者添加的 jar 包依赖(classpath 中的类),自动配置相应的 Bean,从而大大减少开发者手动的配置。比如说开发者添加了spring-boot-starter-web这个依赖,那么 Spring Boot 就认为你是要开发 Spring MVC 应用,它会自动帮你配置 DispatcherServlet、HandlerMapping 和 HandlerMethod 等一系列 Spring MVC 的核心组件。开发者就不需要自己在进行配置了。

Spring Boot 另外一个方便的地方是内嵌了 Servlet 容器,我们开发完之后可以直接将应用打成一个可执行的 Jar 包,而不是打成 war 包再部署到自己安装的 Servlet 容器中去。

下面我们用一个 Spring MVC 应用的列子,看看 Spring Boot 到底能给我们带来哪些方便。

使用 Spring Boot 开发项目

  1. 传统的开发流程

我们使用传统的 Spring 开发一个 Spring MVC 项目大概要做下面几个步骤:

  • 添加一些列 Spring 的核心依赖,添加 Spring MVC 依赖;
  • 配置 web.xml 配置文件,主要是配置 ContextLoaderListener 和 DispatcherServlet;
  • 进行 Spring MVC 相关的配置,主要是<mvc:default-servlet-handler/><mvc:annotation-driven/>等相关配置;
  • 日志相关配置;
  • 编写相关的 Controller;
  • 打成 war 包,安装 Tomcat,并部署 war 运行。

对于新手来说,上面的流程步骤还是很多的,很有可能在某一步出错。特别是好多刚刚接触Spring的同学对于第一步中要添加哪些依赖根本就“傻傻分不清楚”,比较影响学习的积极性。对于老手来说,上面的步骤可能都是一些重复性的操作,比较“浪费时间”。因此需要Spring Boot来解决这个问题。

  1. Spring Boot开发流程

使用Spring Boot开发Spring MVC我们需要下面几步:

  • 添加依赖

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
    
  • 编写主启动类

  • 编写相关的Controller

  • 直接打成可执行Jar包运行。

我们可以发现使用Spring Boot真的可以减少很多流程,而且大大减少自己配置出错的概率。

简单总结

Spring Boot是一个能够帮助开发者迅速开发Spring应用框架。它大大减少了传统Spring应用中的配置文件,提升开发效率和开发体验。同时Spring Boot还提了内嵌式的Servlet容器,可以将应用打成可执行Jar包直接运行。

一些问题

使用Spring Boot的确可以提升开发效率。但是它封装了太多细节,对于初学者来说Spring Boot也可能是“噩梦”。出了问题不知从何查起。所以我觉得对于框架这种东西我们还是要知道他们的原理性的知识,这样使用起来才能更加得心应手。

如果你是刚刚接触Spring Boot下面这些问题可以过段时间再考虑,先将Spring Boot用熟练再说。但如果你已经使用Spring Boot有段时间了,下面这些问题还是建议自己去琢磨琢磨:

  • Spring Boot的启动流程是怎样的;
  • Spring Boot中的自动配置是怎么生效的;
  • 内嵌的Servlet容器(比如Tomcat)是什么时候加载的;
  • 打成的可执行Jar包是怎么执行的。

当然上面只是我现在能想到的一些问题,自己在学习过程中可以去不断发现和总结。

公众号推荐

欢迎大家关注我的微信公众号「程序员自由之路」

原文地址:https://www.cnblogs.com/54chensongxia

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


今天小编给大家分享的是Springboot下使用Redis管道(pipeline)进行批量操作的介绍,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起...
本篇文章和大家了解一下springBoot项目常用目录有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。springBoot项目常用目录springBoot项...
本篇文章和大家了解一下Springboot自带线程池怎么实现。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一: ThreadPoolTaskExecuto1 ThreadP...
这篇文章主要介绍了SpringBoot读取yml文件有哪几种方式,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Spring Boot读取yml文件的主要方式...
今天小编给大家分享的是SpringBoot配置Controller实现Web请求处理的方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧...
本篇文章和大家了解一下SpringBoot实现PDF添加水印的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简介PDF(Portable Document Form...
本篇文章和大家了解一下解决Springboot全局异常处理与AOP日志处理中@AfterThrowing失效问题的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有...
本篇文章和大家了解一下IDEA创建SpringBoot父子Module项目的实现方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录前言1. 软硬件环...
今天小编给大家分享的是springboot获取项目目录路径的方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收...
本篇内容主要讲解“SpringBoot+Spring Security无法实现跨域如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面...
这篇文章主要介绍“vue怎么发送请求到springboot程序”,在日常操作中,相信很多人在vue怎么发送请求到springboot程序问题上存在疑惑,小编查阅了各式资料,整理...
本篇内容主要讲解“Springboot内置的工具类CollectionUtils如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家...
本文小编为大家详细介绍“SpringBoot上传文件大小受限如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot上传文件大小受限如何解决”文章能帮...
本文小编为大家详细介绍“springboot拦截器如何创建”,内容详细,步骤清晰,细节处理妥当,希望这篇“springboot拦截器如何创建”文章能帮助大家解决疑惑,下面...
本文小编为大家详细介绍“Hikari连接池使用SpringBoot配置JMX监控的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Hikari连接池使用SpringBoot配...
今天小编给大家分享一下SpringBoot如何使用Sa-Token实现权限认证的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大...
这篇文章主要介绍“SpringBoot如何集成SFTP客户端实现文件上传下载”,在日常操作中,相信很多人在SpringBoot如何集成SFTP客户端实现文件上传下...
本篇内容主要讲解“Springboot插件怎么开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot插件怎
这篇文章主要介绍“Springboot怎么解决跨域请求问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇...
今天小编给大家分享一下如何在SpringBoot2中整合Filter的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文...