简介

自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Spring作为一个轻量级的J2EE应用框架,就是针对EJB的复杂特性而设计的,最后毫无疑问,Spring凭借它的简洁,可理解性和可用性赢得了最后的胜利。

Spring从最初的xml配置到后面的注解配置,一直都在不断的进步,但是可不可以,能不能够有一种方法可以不要配置就能运行Spring应用程序?于是Spring Boot应运而生。

更多内容请访问www.flydean.com

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。

Spring Boot让你的企业级应用更加容易编写,更加容易运行。并且集成了很多常用的第三方lib库,免去了大家手动引用配置的麻烦。

使用最简单的配置运行最复杂的Spring应用程序,应该就是Spring Boot的终极目标。

同时Spring Boot尽可能的摆脱xml配置,能够提供包括独立运行,服务器内部运行等各种运行方式,方便我们的使用。

Spring Boot的基本操作

最新的Spring Boot版本是2.3.0.RELEASE,它需要至少JDK8的支持和Spring Framework 5.2.6.RELEASE。

在构建工具方面,需要Maven 3.3+ 和 Gradle 6.3+。

服务器方面,Spring Boot内置三个服务器:Tomcat 9.0,Jetty 9.4和Undertow 2.0。Spring Boot需要部署在Servlet 3.1+的环境中才能正常运行。

在安装方面,Spring Boot有两种安装方式,第一种就是在Maven或者Gradle中以jar包的形式引入,这种方式的好处就是直观,并且Spring Boot的配置都是在项目中可以看到的。

第二种方式就是使用Spring Boot CLI,通过cli还可以运行groovy脚本。

下面列出了Spring Boot中的几个基本模块:

下面列出的教程文件,大家可以一步一步的去参考运行,运行完毕相信大家对Spring Boot会有一个深刻的理解。

Spring Boot的构建和部署

开发java项目少不了要用到maven或者gradle,对比gradle而言,可能maven要更加常用一些。要使用maven那就必要要安装maven,如果有些用户不想安装maven怎么办?或者说用户不想全局安装maven,那么可以使用项目级别的Maven Wrapper来实现这个功能。

如果大家使用IntelliJ IDEA来开发Spring boot项目, 如果选择从Spring Initializr来创建项目,则会在项目中自动应用Maven Wrapper。简单点说就是在项目目录下面会多出两个文件: mvnw 和 mvnw.cmd。

当我们创建好了Spring Boot应用程序之后,怎么在生成环境中运行呢?如果只是以原始的java -jar 的方式来运行的话,不能保证程序的健壮性和稳定性,最好的办法是将程序注册成为服务来使用。

Spring Boot工具

Spring Boot Actuator 在Spring Boot第一个版本发布的时候就有了,它为Spring Boot提供了一系列产品级的特性:监控应用程序,收集元数据,运行情况或者数据库状态等。

使用Spring Boot Actuator我们可以直接使用这些特性而不需要自己去实现,它是用HTTP或者JMX来和外界交互。

Spring Boot为我们提供了一个便捷的开发Spring Boot应用程序的环境,同时为了方便我们的开发Spring Boot应用程序,Spring Boot 推出了Spring Boot devtool的工具来方便我们更加快速的开发和测试Spring Boot应用程序。

前面我们讲了Spring Boot的Actuator。但是Spring Boot Actuator只是提供了一个个的接口,需要我们自行集成到监控程序中。今天我们将会讲解一个优秀的监控工具Spring Boot Admin。 它采用图形化的界面,让我们的Spring Boot管理更加简单。

Spring Boot的测试

测试是一个应用程序必须要有的功能,它可以保证程序的健壮性,和稳定性,尤其是在CI环境中更是如此。

Spring Boot有专门的spring-boot-starter-test,通过使用它可以很方便的在Spring Boot进行测试。

Spring Boot中使用JPA

JPA的全称是Java Persistence API (JPA),他是一个存储API的标准,而Spring data JPA就是对JPA的一种实现,可以让我们方便的对数据进行存取。按照约定好的方法命名规则写dao层接口,从而在不实现接口的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询等等。

Spring data JPA可以看做是对Hibernate的二次封装。在Spring Boot中使用JPA是非常的方便。

Spring Boot和第三方系统的集成

Spring Boot为了开发人员的方便,已经集成了很多第三方的服务,我们可以直接使用他们。

甚至如果Spring官方没有提供集成的话,第三方系统本身也会提供跟Spring的集成,因为Spring的使用实在是太广泛了。

总结

本文将会持续更新Spring Boot 2.x相关的文章,大家觉得不错可以点个关注,同时如果大家有建议的教程内容,欢迎大家留言回复,我会尽量补齐,谢谢大家的支持!

本文链接:http://www.flydean.com/learn-spring-boot/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新的更多相关文章

  1. Spring Boot 2.0系列文章(七):SpringApplication 深入探索

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/30/springboot_SpringApplication/ 前言 在 Spring B ...

  2. Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 为什么要全局异常处理? WebFlux REST 全 ...

  3. CRL快速开发框架系列教程七(使用事务)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  4. ASP.NET 5系列教程(七)完结篇-解读代码

    在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]") ...

  5. 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...

  6. webpack4 系列教程(七): SCSS提取和懒加载

    教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)webpack4 系列教程(七): SCSS 提取和懒加载. 个人技术小站: https://god ...

  7. (转)NGUI系列教程七(序列帧动画UITexture 和 UIsprit)

    NGUI系列教程七(序列帧动画)   今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始.还 ...

  8. 【转】PyQt5系列教程(七)控件

    PyQt5系列教程(七)控件   软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...

  9. Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! WebFlux 系列教程大纲 一.背景 大家都知道,Sprin ...

  10. Unity3D脚本中文系列教程(七)

    http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii Unit ...

随机推荐

  1. 多线程系列(十) -ReadWriteLock用法详解

    一.摘要 在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码. 但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许 ...

  2. 现代 CSS 解决方案:accent-color 强调色

    accent-color 是从 Chrome 93 开始被得到支持的一个不算太新属性.之前一直没有好好介绍一下这个属性.直到最近在给一些系统整体切换主题色的时候,更深入的了解了一下这个属性. 简单而言 ...

  3. 【转载】nltk英文自定义分词

    NLTK项目地址: https://github.com/nltk/nltk_data/tree/gh-pages/packages NLTK基础分词用例: https://www.cnblogs.c ...

  4. DataGear 使用静态HTML模板制作数据可视化看板

    DataGear 看板提供了导入静态 HTML 模板的功能,使您可以利用已有的任意 HTML 网页资源快速制作数据可视化看板. 首先,您需要准备一套已设置好布局的静态 HTML 模板,其中包含的 HT ...

  5. 【Azure API 管理】APIM中证书更新问题

    问题描述 每一年到期更新域名证书,APIM会中断服务,请问如何不中断服务? 问题解答 Azure API 管理允许在受信任的根证书和中间证书存储中的计算机上安装 CA 证书,分配证书的过程可能需要 1 ...

  6. 【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?

    通过PSLIST查看Windwos中的进程信息及线程信息 一:下载PSLIST小工具:https://docs.microsoft.com/en-us/sysinternals/downloads/p ...

  7. 【Azure Developer】使用 Azure Python 查看 Azure 所有的 Alert rule

    问题描述 在Azure Alert 门户中,可以列举出所有Azure资源的Alert rule信息,如下图: 如果像通过Python SDK来获取所有的Alert Rule,有什么可以参考的代码吗? ...

  8. 【Azure Redis 缓存】当使用Azure Redis 集群服务时候,发生了Moved的几点分析

    问题描述 当使用Azure Redis 集群服务时候,发生了Moved的几点分析 问题分析 1.   关于 Moved 问题,原因有可能是内存碎片整理,从而引起Redis发生failover. 2.  ...

  9. 【Azure 事件中心】China Azure上是否有Kafka服务简答

    问题描述 China Azure 上是否有Kakfa服务可以使用呢? 问题回答 China Azure并没有专门的Kafka服务,但是可以使用Azure Event Hub. 创建标准版及以上的Eve ...

  10. 九: Mysql逻辑架构

    # 逻辑架构 1. 服务器处理客户端请求 首先MySQL是典型的C/S架构,即Client/Server架构,服务器端程序使用的mysqld· 不论客户端进程和服务器进程是采用哪种方式进行通信,最后实 ...