先来一个 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,如下图,可看到左边有菜单,选择其中某项之后,右边会有相关依赖项可选。
通过 Eclipse 创建
强烈推荐喜欢 Eclipse 的童鞋直接下载 Spring Tool Suite,这是一个基于 Eclipse 的 spring 定制 IDE。
作为演示,直接用的 Spring Tool Suite。按照下面的步骤操作:
File->New Spring Starter Poject->根据实际情况修改,作为练习的话,保持默认即可->Next
通过官网创建


关于 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 Reference Guide
- spring boot 监控
- /health
- /env
- /beans
- /dump
- /info
- /metrics
- /mappings
- /trace
spring boot admin
Json view
安装这个插件之后,在浏览器中查看 Json 数据将更加方便,推荐使用。
https://jsonview.com/
https://addons.mozilla.org/en-US/firefox/addon/jsonview/