欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot简介

程序员文章站 2023-11-06 10:38:58
[TOC] 对于做Java开发的程序员,Spring是一个绕不开的框架。现在几乎所有的Java项目都会使用Spring作为作为容器。但是大概两三年前有一个叫做Spring Boot的“家伙”横空出世,其风头好像一时盖过了Spring。所有的基于Spring开发的新项目都转向使用Spring Boot ......

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

1. 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到底能给我们带来哪些方便。

2. 使用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真的可以减少很多流程,而且大大减少自己配置出错的概率。

3. 总结

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包是怎么执行的。

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