为什么学习Spring Boot

简介: Spring Boot 是 Spring 官方推出的快速开发框架,旨在简化配置、编码与部署。其“Build Anything”理念助力开发者快速搭建应用,配合 Spring Cloud 可构建完整微服务体系,是未来Java开发的重要趋势。

2.1 从Spring官方来看

我们打开 Spring 的官方网站,可以看到下图:  

我们可以看到图中官方对 Spring Boot 的定位:Build Anything, Build任何东西。Spring Boot旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。  同时我们也来看一下官方对后面两个的定位:  

SpringCloud:Coordinate Anything,协调任何事情;SpringCloud Data Flow:Connect everything,连接任何东西。

仔细品味一下,Spring 官网对 Spring Boot、SpringCloud 和 SpringCloud Data Flow三者定位的措辞非常有味道,同时也可以看出,Spring 官方对这三个技术非常重视,是现在以及今后学习的重点(SpringCloud 相关达人课课程届时也会上线)。

2.2 从Spring Boot的优点来看

Spring Boot 有哪些优点?主要给我们解决了哪些问题呢?我们以下图来说明:

2.2.1 良好的基因

Spring Boot 是伴随着 Spring 4.0 诞生的,从字面理解,Boot是引导的意思,因此 Spring Boot 旨在帮助开发者快速搭建 Spring 框架。Spring Boot 继承了原有 Spring 框架的优秀基因,使 Spring 在使用中更加方便快捷。

2.2.2 简化编码

举个例子,比如我们要创建一个 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 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。

2.2.3 简化配置

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 {

  @Bean

  public TestService getTestService() {

      return new TestService();

   }

}

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

@Resource

private TestService testService;

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

2.2.4 简化部署

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

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

2.2.5 简化监控

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

2.3 从未来发展的趋势来看

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

相关文章
|
7月前
|
弹性计算 人工智能 前端开发
Agent/Skills/Teams 架构演进过程及技术选型之道
本文系统梳理Agent架构演进路径:Single Agent→Multi-Agent→Agent Skills→Agent Teams,剖析其本质是大模型“领域知识注入”与“长期记忆管理”能力不足的工程补偿。结合阿里云实践及Google、Anthropic最新研究,提出“由简入繁、按需升级”的科学选型方法论,强调架构复杂度须匹配问题复杂度。
1444 4
Agent/Skills/Teams 架构演进过程及技术选型之道
|
7月前
|
API 知识图谱
快递预估价格查询-快递价格预估-快递价格查询-快递价格计算API接口介绍
快递价格预估API支持顺丰,京东,EMS,中通,圆通,申通,韵达,极兔,德邦等主流快递公司。输入起止地、重量体积,秒级返回预估运费。助力用户比价选最优方案(便宜/快速/上门),商家精准设置运费模板,避免亏损或流失客户。
818 0
|
6月前
|
人工智能 编解码 API
阿里云HappyHorse(快乐小马)是什么?详细介绍及免费体验教程
阿里云HappyHorse(快乐小马)是阿里巴巴自研的原生多模态AI视频生成大模型,由阿里ATH创新事业部主导研发,于2026年4月27日正式开启灰测。
2513 0
|
10月前
|
存储 关系型数据库 MySQL
为什么MySQL索引结构是B+tree ?
MySQL采用B+树作为索引结构,因其非叶子节点仅存键值与指针,可存储更多键,降低树高,提升查询效率。数据集中于叶子节点并形成双向链表,支持高效稳定的范围查询。通常树高为2-3层,即可容纳上千万数据,显著优于二叉树或B树。
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
10月前
HTTP协议中常见的状态码 ?
HTTP状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议,如WebSocket)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器内部错误),广泛应用于Web开发中。
|
10月前
|
算法 安全 数据安全/隐私保护
比较一下 DES、AES、SM4
DES、AES和SM4均为对称加密算法。DES采用56位密钥,已不推荐使用;AES支持128、192、256位密钥,全球广泛采用;SM4为我国商用密码标准,支持128位密钥,主要用于国内信息安全领域。
|
10月前
|
数据库
什么是事务以及事务的四大特性?
事务是数据库操作的基本单位,具备ACID四大特性:原子性确保操作不可分割、全成功或全失败;一致性保证数据在事务前后保持正确状态;隔离性使事务独立运行,避免并发干扰;持久性指事务提交后更改永久生效。这些特性共同维护数据的完整性与可靠性。(238字)
|
10月前
|
存储 关系型数据库 MySQL
MySQL数据库中的 char 与 varchar的区别是什么?
MySQL中char和varchar均用于存储字符串,但char为定长,固定空间,速度快但占空间;varchar为变长,按需存储,省空间但稍慢。设计表时应根据字段长度是否固定选择:如手机号用char(11),用户名等用varchar。
|
10月前
|
安全
HTTP协议中请求方式GET 与 POST 什么区别 ?
简介:项目开发中常见GET与POST请求方式,主要区别在于参数传递位置、大小限制及安全性。GET用于获取数据,参数在URL中;POST用于提交数据,参数在请求体中,更安全。现代项目多采用RESTful风格,通过URL定位资源,不同请求方式(GET/POST/PUT/DELETE)对应不同操作,提升接口规范性与可读性。(238字)

热门文章

最新文章