想学会 Spring Boot 你必须深刻了解这些概念

2021-03-28 12:25

阅读:401

标签:ips   性能   集合   ioc   log   tar   应用   logging   业务   

1.0前言
Spring Boot是一个难以理解的框架。在本文中,我们将了解Spring Boot的基础知识,并帮助您了解重要的概念-starter,自动配置和Parents。希望多多关注微信公众号:Felordcn

2.0理解Spring Boot的架构
Spring Boot的构建基块是:

  • Spring Boot Starter
  • Spring Boot Starter Parent
  • Auto Configuration

我们将通过与Spring和Spring MVC进行比较来了解Spring Boot想要实现的目标。想了解了这一点,就应该从Spring Boot的构建基块入手。

3.0Spring Boot并不与其他竞争
你必须要理解的是:Spring Boot并不与Spring、Spring MVC竞争。Spring Boot使得使用它们变得容易。

3.1Spring Framework
它最重要的功能是依赖注入。所有Spring模块的核心是依赖注入或IOC(控制反转)。如果正确使用DI或IOC,我们可以开发松耦合的应用程序。松耦合的应用程序可以轻松地进行单元测试。

3.2Spring MVC
Spring MVC提供了一种分离的方式来开发Web应用程序。通过使用Dispatcher Servlet,ModelAndView和View Resolver的特有简单概念,可以轻松开发Web应用程序。它是Spring框架在servlet web规范中的提现。

3.3Spring Boot
Spring和Spring MVC的问题在于随着项目不断发展你需要维护大量各种各样诸如properties和xml类型的配置文件,bean描述文件。Spring Boot通过“约定大于配置”同时结合自动配置和入门项目解决了这个问题。Spring Boot还提供了一些功能,可以更快地构建可用于生产环境的应用程序。

4.0Spring Boot自动配置
Spring和Spring MVC应用程序具有很多XML或Java Bean配置。每当开辟一些新的业务时你不得不增加你的配置。Spring Boot围绕这个痛点引入了新的思维过程:是否能让应用更加智能?当一个jar引入时能自动发现一些Spring Bean。

  • 如果Hibernate JAR位于类路径中,如何自动配置数据源呢?
  • 如果Spring MVC JAR位于类路径中,如何自动配置Dispatcher Servlet呢?

Spring Boot 针对一些常用的框架进行了一些可自动发现的默认配置,也是使用这些框架必须的基本配置。这就是自动配置(Auto Configuration)。

5.0Spring Boot Starter
什么是Spring Boot Starter?starter就是是一组便捷的依赖项描述符,您可以在应用程序中引入它们,获得一站式使用其所需的所有Spring和其他相关技术, 而不必去手动引入各种相关的依赖项。同时也不必担心依赖冲突和不兼容的问题。就像你需要一台V12发动机,不是店家直接给予你所有必须的一堆零件,而是一整台发动机。你不必关心它依赖了什么,原理是什么,只关心它有什么用。

以下屏幕快照显示了将Spring Boot Start Web添加到项目的依赖项时添加到我们的应用程序中的不同依赖项。技术图片

这是通常用于开发Web应用程序的各种组件。如果让你手动引入想想都头皮发麻。Spring Boot Starter Web将它们组合在一起以便于让你以非常简单的开启Spring MVC Web开发并使用以下特性:

  • Spring Bean、context\IOC、AOP
  • Web MVC — (Spring MVC)
  • Jackson — for JSON Binding
  • Validation — Hibernate Validator, Validation API
  • Embedded Servlet Container — Tomcat
  • Logging — logback, slf4j

Spring Boot 提供了很多有用的Starter,你可以在Spring Boot官网找到它们。当然你也可以自己写一个Starter,具体的教程可以通过我的公众号:Felordcn 获取。

6.0Spring Boot Starter
所有Spring Boot项目通常在pom.xml中将spring-boot-starter-parent用作父项。

org.springframework.boot
    spring-boot-starter-parent
    2.1.8.RELEASE

Parent POM 提供了以下能力让你管理的应用:

  • 配置 ——诸如 java版本和其他一些组件的默认配置
  • 依赖管理 ——统一的依赖版本管理
  • 默认的插件配置。

7.0Spring Initializr
Spring Initializr 是Spring官方提供的极速构建Spring Boot项目的可视化引导工具。

它使您可以通过非常简单的UI创建各种基于Spring Boot的应用程序。您可以按需选择构建编程语言、工具、版本,功能、Starter组件,甚至可以通过web来预览你构建的项目。你也可以通过Intellij IDEA 、eclipse等IDE提供的Spring Initializr集成工具来快速方便地构建Spring Boot 项目。

8.0嵌入式WEB服务器

Spring Boot 集成了嵌入式服务器,使得我们的应用可部署单元包含了服务器二进制文件。目前提供了以下嵌入式服务器:

  • Jetty
  • Tomcat
  • Undertow

个人推荐性能更加强大的Undertow。

9.0Spring Data数据访问
Spring 还提供了数据访问一致的基于Spring编程模型,同时保留了基础数据存储的抽象类库集合,常用的模块有:

  • Spring Date JDBC
  • Spring Data JPA
  • Spring Data Redis
  • Spring Data MongoDB
  • Spring Data Elasticsearch

这些类库都提供相应的Starter组件,还有其他一些类库,可以去官方网站查询。

总结
通过以上的详细引导介绍,相信会让你对Spring Boot 有一个全面的认识。让你学习起来更加轻松。

想学会 Spring Boot 你必须深刻了解这些概念

标签:ips   性能   集合   ioc   log   tar   应用   logging   业务   

原文地址:https://blog.51cto.com/14901317/2529854


评论


亲,登录后才可以留言!