一、什么是SpringBoot

在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得慢慢笨重起来,,繁琐的配置和整合第三方框架的配置,导致了开发和部署效率的降低。

Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。

二、为什么学习SpringBoot

1.从官方来看

2.从Spring的优点来看

①良好的基因

因为SpringBoot是伴随着Spring 4.0而生的,boot是引导的意思,也就是它的作用其实就是在于帮助开发者快速的搭建Spring框架,因此SpringBoot继承了Spring优秀的基因,在Spring中开发更为方便快捷。

②简化依赖

,比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。

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

我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,我们看一下其中的一部分,如下:

<!-- .....省略其他依赖 -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.0.7.RELEASE</version><scope>compile</scope>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.7.RELEASE</version><scope>compile</scope>
</dependency>

由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。

③简化配置

Spring 虽然使Java EE轻量级框架,但由于其繁琐的配置,一度被人认为是“配置地狱”。各种XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot更多的是采用 Java Config 的方式,对 Spring 进行配置。举个例子:

我新建一个类,但是我不用 @Service注解,也就是说,它是个普通的类,那么我们如何使它也成为一个 Bean 让 Spring 去管理呢?只需要@Configuration 和@Bean两个注解即可,如下:

public class TestService {public String sayHello () {return "Hello Spring Boot!";}
}import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class JavaConfig {@Beanpublic TestService getTestService() {return new TestService();}
}

@Configuration表示该类是个配置类,@Bean表示该方法返回一个 Bean。这样就把TestService作为 Bean 让 Spring 去管理了,在其他地方,我们如果需要使用该 Bean,和原来一样,直接使用@Resource注解注入进来即可使用,非常方便。

@Resource private TestService testService;

另外,部署配置方面,原来 Spring 有多个 xml 和 properties配置,在 Spring Boot 中只需要个 application.yml即可。

④简化部署

在使用 Spring 时,项目部署时需要我们在服务器上部署 tomcat,然后把项目打成 war 包扔到 tomcat里,在使用 Spring Boot 后,我们不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,我们只需要将项目打成 jar 包,使用 java -jar xxx.jar一键式启动项目。

另外,也降低对运行环境的基本要求,环境变量中有JDK即可。

⑤简化监控

我们可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 Spring Cloud 来配合一起使用。

3.从未来发展趋势看

微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。而 继承了 Spring 的优良特性,与 Spring 一脉相承,而且 支持各种REST API 的实现方式。Spring Boot 也是官方大力推荐的技术,可以看出,Spring Boot 是未来发展的一个大趋势。

SpringBoot的优点相关推荐

  1. Springboot,SSM及SSH的概念、优点、区别及缺点

    Springboot的概念: 是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置.此框架不需要配置xml,依赖于像MAVEN这 ...

  2. Springboot总结,核心功能,优缺点

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:lizmit https://blog.csdn.net/q ...

  3. 一文带你看懂Springboot核心功能及优缺点

    点击上方[视学算法]→右上角[...]→[设为星标⭐] SpringBoot核心功能 1.独立运行Spring项目 Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项 ...

  4. 使用IDEA搭建第一个SpringBoot程序

    近来在研究SpringBoot的使用,现在把使用IDEA搭建一个SpringBoot的HelloWorld程序记录下来 新建一个SpringBoot环境 打开你的IntelliJ IDEA,然后选择C ...

  5. spring的发展||springboot和微服务的介绍

    spring的发展 1,Spring1.x时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置 ...

  6. springboot入门demo详解(解决跨域)

    前言: 微服务自问世以来就一直很火.天天耳听Springboot,Springcloud,docker,这些名词,以前没学Springboot的时候刚学ssm的时候,,说实话头都炸了.单独一个个学习S ...

  7. SpringBoot从介绍到各个框架的整合

    1.背景:以前假如想创建一个Spring应用, 比如Spring.SpringMVC.Mybatis三大框架的整合, 我们需要一堆繁琐的步骤:maven导一堆依赖-->写一堆配置文件--> ...

  8. 在tomcat上部署项目需要打成jar_Spring Boot Web 项目教程,SpringBoot与传统Web 优缺对比...

    1.引子 大家好,在接下里的一段时间里,我会给大家详细的介绍SpringBoot的基本使用,相信学完这门课程以后,你会对SpringBoot有一个清晰的认识,并且能够运用这门比较新颖的技术开发一些小程 ...

  9. myeclipse springboot 运行内存溢出_springboot学习心得 - aowumao

    简介: 对Spring框架盛行了多年的java方向开发人员来说,每个人java开发已经把spring框架当作开发中不可或缺的一部分,之前传统的模式配置文件的形式存在,而对应大多数入门级开发人员来说配置 ...

最新文章

  1. 单片机程序100-300例(付注释详解)
  2. Twitter在超分辨率技术上取得新进展,能还原打码图片
  3. oracle性能优化总结
  4. php文件名函数,php 获取文件名basename()函数的用法总结
  5. MySQL优化之my.conf配置详解
  6. 一个脚本实现全量增量备份,并推送到远端备份中心服务器
  7. 安装oracle到create inventory时卡住了怎么办_win10系统安装教程(官方工具)
  8. 我可以隐藏HTML5号码输入的旋转框吗?
  9. CV学习笔记-推理和训练
  10. [C4] 前馈神经网络(Feedforward Neural Network)
  11. C/C++[codeup 1944]八进制
  12. 《WEB全栈工程师的自我修养》--索引笔记
  13. abaqus2019安装教程_Xflow2019和Abaqus2019版本安装不成功的问题解决办法
  14. 测试团队的建设和管理
  15. html画圆圈加感叹号,感叹号怎么打 拜托了是两个并在一起的叹号,
  16. animate cc mysql,Vue 动画渲染
  17. InfoPath 2007 常见问题
  18. 最简单的 Hopper Disassembler 玩转 Mac 逆向(简单又易理解、轻松get)
  19. Nginx安装/负载均衡/反向代理配置与调优
  20. android 高光动画,InstrumentPanelView

热门文章

  1. linphone 智能带宽分配
  2. 一文搞懂 Traefik2.1 的使用
  3. 限定性定语从句和非限定性定语从句的区别
  4. 如何使用Tenderly在Moonbeam上构建更优秀的Dapp
  5. 清晰地记录着这河水改道的历史
  6. ubuntu 触摸板失灵解决
  7. JavaScript面向对象
  8. 【arduino】LCD1602屏幕动画
  9. LinkedBlockingQueue 实现生产者消费者模型
  10. 解决win10家庭版安装LoadRunner11无法破解问题