是什么?能做什么

SpringBoot必知必会


是什么?能做什么

  • SpringBoot是一个快速开发脚手架
  • 快速创建独立的、生产级的基于Spring的应用程序

SpringBoot必知必会

快速创建应用

需求

能够浏览器访问返回HelloWord

使用Spring Initializr快速创建SpringBoot应用

  1. File -> new -> Project -> 左侧选择Spring Initializr -> 选择jdk -> Next
  2. 配置项目信息 -> next
  3. 添加Spring Web -> 选择SpringBoot版本
  4. 选择项目位置 -> Finish

我们创建时使用的是start.spring.io这是Spring官方提供的构建器,也可以直接访问网址创建项目。下载压缩包然后导入IDE工具。
Custom是使用其他的构建地址,如果你公司不能访问外网就可以使用一个自己的构建地址,构建器的构建方式在官网有提供。

  1. 在启动类SpringBootApplication同级建立controller包编写HelloController类
@RestControllerpublic class HelloController {
@GetMapping("/hello")
public Object sayHello(){
return "HelloWord";
}
}
  1. 启动SpringBootApplication -> 浏览器访问http://localhost:8080/hello -> 启动成功
  2. 命令行启动jar,执行maven clean install 打包应用程序,会在target中生成jar包,执行java -jar xxx.jar就可以启动项目了

应用组成分析

  • 依赖 : pom.xml
  • 注解 : @SpringBootApplication
  • 配置 : application.yml
  • static : 静态资源文件,
  • templates:模板引擎

开发三板斧

  1. 加依赖
    整合相关资源一般是添加该资源的starter包

    官方依赖一般是spring-boot-starter-xxx

    非官方依赖一般是xxx-spring-boot-starter

  2. 写注解
    各种注解的编写

  3. 写配置
    application.yml添加配置信息

SpringBoot Actuator监控

  1. 是什么

    为应用添加监护能力

  2. 整合Actuator

  • 加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId></dependency>

在不写注解和配置的情况下是可以启动actuator的,启动项目后显示

日志显示信息为暴露了两个端口,其中base path为“/actuator”

我们访问http://localhost:8080/actuator可以看到如下信息

其中"/actuator"端点能够显示出所有的端点信息
“/health”端点,健康检查,检查应用的资源
那具体检查的是什么呢,在application.yml中添加一行配置信息(不添加配置信息默认只显示状态)
展示Health端点的详细信息

management:
endpoint:
health:
show-details: always

health有四种状态:
UP:正常。
DOWN:遇到了问题,不正常。
OUT_OF_SERVICE:资源未在使用,或者不该去使用。
UNKNOWN:不知道
“/info”端点,描述应用,展示应用的一些信息

info:
app-name: 莫逸风的测试系统
user-email: 123@123.com

访问info端点就会将相关信息展示出来。

暴露端点

management:
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: *

"*"代表所有的端点,可以使用aaa,bbb导入多个端点,都好隔开

配置管理

application.application
application.yml
实际项目中配置管理的常用方式

  1. 配置文件
  2. 环境变量
    在启动Tomcat时配置环境变量

    在配置文件中通过${name}取到环境变量
    在命令行添加环境变量
java -jar hello_spring_boot-0.0.1-SNAPSHOT.jar --name="莫逸风"
  1. 外部配置文件
    spring boot能够读取和jar包相同路径的配置文件,而且此配置文件比,jar包内部的配置文件优先级更高
  2. 命令行参数
    修改端口又不想修改配置文件可以在这里配置

    命令行方式
java -jar hello_spring_boot-0.0.1-SNAPSHOT.jar --server.port=8081

Profile

不同环境使用不同的配置

# 通用配置不管在什么环境下都生效的配置
management:
endpoint:
health:
show-details: always
info:
app-name: ${name}
user-email: 123@123.com
---
# profile=x的专用属性,也就是某个环境下的专用属性
spring:
profiles: devinfo:
text: dev
---
# profile=y的专用属性,也就是某个环境下的专用属性
spring:
profiles: prod
info:
text: prod

利用三短横线将配置隔开,并配置profile属性在启动时指定profile属性

不指定默认启动profile=default的配置
可以在通用配置中添加

spring:
profiles:
active: dev

默认启动的就是dev配置了

proterties没有三个中划线的语法,所有使用文件名来限制
application.proterties
application-dev.proterties
application-prod.proterties

SpringBoot快速入门(必知必会)的更多相关文章

  1. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  2. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  3. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

  4. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

    http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...

  5. Android程序员必知必会的网络通信传输层协议——UDP和TCP

    1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...

  6. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  7. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  8. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  9. Visual Studio 使用及调试必知必会

    原文:Visual Studio 使用及调试必知必会   一:C# CODING 技巧 1:TODO 然后 CTRL + W + T,打开任务列表,选中 Comments,就会显示所有待做的任务 2: ...

随机推荐

  1. 用Python分析下王小波与李银河写情书最爱用哪些词

    作家王小波其实也是我国最早期的程序员,突发奇想,王小波写情书最喜欢用哪些词呢?用Python词云分析下! 直接上代码吧,有注释很好理解.输出的图片设置的比较大,所以运行的比较慢,可以适当把图片尺寸改小 ...

  2. Pytest单元测试框架之parametrize参数化

    1.参数化的本质:相同的步骤,但测试数据不同,比如登录的场景 import mathimport pytest# 方式一:分离出Listdef list_Test(): list = [ [2, 2, ...

  3. 理解并掌握Promise的用法

    前沿:  Promise在处理异步操作非常有用.项目中,与后端进行数据请求的时候经常要用到Promise.我们可以用promise + xhr进行ajax的封装.也可以使用基于promise封装的请求 ...

  4. 在NestJS 中添加对Stripe 的WebHook 验证

    在NestJS 中添加对Stripe 的WebHook 验证 背景介绍 Nest 是一个用于构建高效,可扩展的NodeJS 服务器端应用程序的框架.它使用渐进式JavaScript, 内置并完全支持T ...

  5. Leetcode春季活动打卡第三天:面试题 10.01. 合并排序的数组

    Leetcode春季活动打卡第三天:面试题 10.01. 合并排序的数组 Leetcode春季活动打卡第三天:面试题 10.01. 合并排序的数组 思路 这道题,两个数组原本就有序.于是我们采用双指针 ...

  6. javascript中“==”,“===”和“Object.is(a,b)”的区别

    作为两个量比较的三种方式"==","==="和"Object.is(a,b)"有一定区别,如下(具体见MDN): (1)Object.is( ...

  7. pip批量安装库

    将需要安装的库名和版本号都写在一个txt文档中,每个库名占一行,例如requests==2.24.0. 然后在用pip install -r命令去找到这个txt文档批量安装里面填写的库,如果嫌速度太慢 ...

  8. WebRTC 用例和性能

    WebRTC 用例和性能 实现低延迟.点对点传输是一项艰巨的工程挑战:有 NAT 遍历和连接检查.信令.安全.拥塞控制和无数其他细节需要处理.WebRTC 代表我们处理以上所有内容,这就是为什么它可以 ...

  9. fiddle手机抓包配置

    第一步:打开Fiddler,配置参数: 1. 配置fiddler允许监听到https 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾 ...

  10. Vulhub-Phpmyadmin 4.8.1远程文件包含漏洞

    前言:Phpmyadmin是一个用PHP编写的免费软件工具,旨在处理Web上的MySQL管理. 该漏洞在index.php中,导致文件包含漏洞 漏洞环境框架搭建: cd vulhub-master/p ...