如题

先来一个 helo world,找点成就感

这个建议直接官网查看Quick Start,这里就不啰嗦了。

官方demo,spring-petclinic

  • 技术点
    • Actuator
    • thymeleaf
    • data-jpa
    • webjars
    • wro

我的修改版本,更贴近实际项目

spring 官方例子->宠物医院,数据库改成 MySQL,数据库连接池改成 druid

创建 spring starter 初始化项目的三种方式

通过 IntelliJ IDEA 创建

如果你不是 Eclipse 的铁粉,强烈推荐使用 IntelliJ IDEA 作为 Java IDE,至于如何免费激活,请度娘,或者联系我,当然,不差钱的童鞋,建议支持正版。

切入正题,按照下面的步骤操作:
File->New-Project…->Spring Initializer->选jdk版本,建议选1.8,其余保持默认->Next,根据实际情况修改,作为练习的话,保持默认即可->Next,如下图,可看到左边有菜单,选择其中某项之后,右边会有相关依赖项可选。

IDEA创建spring starter项目
IDEA创建spring starter项目

通过 Eclipse 创建

强烈推荐喜欢 Eclipse 的童鞋直接下载 Spring Tool Suite,这是一个基于 Eclipse 的 spring 定制 IDE。
作为演示,直接用的 Spring Tool Suite。按照下面的步骤操作:
File->New Spring Starter Poject->根据实际情况修改,作为练习的话,保持默认即可->Next

STS创建spring starter项目
STS创建spring starter项目

通过官网创建

官网创建spring starter项目,可通过搜索依赖项来添加依赖,建议点开 Switch to the full version
官网创建spring starter项目,可通过搜索依赖项来添加依赖,建议点开 Switch to the full version
官网创建spring starter项目,点 Switch to the full version 之后,可直接点选
官网创建spring starter项目,点 Switch to the full version 之后,可直接点选

关于 spring boot 的一些“废话”

  • 需要做 Web 页面,如果纠结该选哪个模板引擎,那么,我的建议是:如果你没有特别熟悉的,同时公司也没有特别要求的话,选 Thymeleaf。Spring 官方对 Thymeleaf 有很好的支持,而且一直在更新。这个模板引擎在美工或前端开发时,可以直接以 Html 的方式查看效果而不需要 Java 容器,即便代码包含后端数据元素也不影响,更多介绍,请度娘。Thymeleaf, 你值得拥有…^_^
  • Spring Boot 的诞生,是为了解决这样的问题:在之前的 web 项目开发中,spring 框架大量使用。但随着项目“体积”的增大,各个方面的配置文件充斥着整个项目,造成项目的开发、管理和维护成为一件头痛的事。
  • Spring Boot 充分利用了 JavaConfig 的配置模式以及“约定优于配置”的理念,能够极大的简化基于 Spring MVC 的 Web 应用和 REST 服务开发。Spring4 倡导微服务架构.
  • 为了简化依赖图,Spring Boot 的功能是模块化的,通过导入 Spring Boot 所谓的“starter”模块,可以将许多的依赖添加到工程之中。为了更容易地管理依赖版本和使用默认配置,框架提供了一个 parent POM,工程可以继承它。
  • Spring Boot 内建了一些聚合模块,通常称为“启动者”。这些启动模块中是一些类库的已知的、良好的、具备互操作性的版本的组合,这些类库能够为应用程序提供某些方面的功能。Spring Boot 能够通过应用程序的配置对这些类库的进行设置,这也为整个开发周期中带来了约定胜于配置的便利性。
  • 作为一个微服务框架,Spring Boot 的很大一部分价值在于它能够无缝地为基于 Maven 和 Gradle 的项目提供各种构建工具。通过使用 Spring Boot 插件,就能够利用该框架的能力,将项目打包为一个轻量级的、可运行的部署包,而除此之外几乎不需要进行任何额外的配置。
  • 我们可以很快地重写 Spring Boot 的默认配置。默认情况下,应用的配置可以使用 Java 属性文件来进行定义,这个文件名为 application.properties 并且位于应用的 classpath 根目录下。不过,一种更好的方式是使用 YAML 配置,它提供了结构化以及嵌套的配置。在应用的运行时类路径之中包含 snakeyaml 之后,你的工程就可以在 application.yml 文件中直接定义配置了。

restful,微服务架构

  • 在企业级基础设施领域,微服务是一种越来越流行的应用架构,因为它能够实现快速开发、更小的代码库、企业级集成以及模块化部署。
  • URI(统一资源定位符),每一个资源的地址或独一无二的识别符。
  • 资源:网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI来访问。
  • 资源”是一种信息实体,它可以有多种外在表现形式。我们把”资源”具体呈现出来的形式,叫做它的”表现层”(Representation)。
  • REST(英文:Representational State Transfer,简称REST),满足这些约束条件和原则的应用程序或设计就是 RESTful。
  • RESTful:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
  • 使用各种技术栈实现 Restful api
  • REST 并不是一种具体的技术,也不是一种具体的规范,REST 是一种内涵非常丰富的架构风格。
  • 在 Fielding 的这篇名为 Architectural Styles and the Design of Network-based Software Architectures 的博士论文(中文版名为《架构风格与基于网络的软件架构设计》)中,提出了一整套基于网络的软件(即所谓的“分布式应用”)的设计方法,值得所有分布式应用的开发者仔细阅读、深入体会。

URIs, URLs, and URNs

  • 首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而 URL 是 uniform resource locator,统一资源定位器,它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何 locate 这个资源。而 URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如 mailto:java-net@java.sun.com。也就是说,URI 是以一种抽象的,高层次概念定义统一资源标识,而 URL 和 URN 则是具体的资源标识的方式。URL 和 URN都是一种 URI。

Swagger

  • 一款RESTFUL接口的文档在线自动生成+功能测试功能软件。
  • 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

端点 Spring Boot Actuator

spring boot admin

Json view

安装这个插件之后,在浏览器中查看 Json 数据将更加方便,推荐使用。
https://jsonview.com/
https://addons.mozilla.org/en-US/firefox/addon/jsonview/