目录
步骤①:创建新模块,选择Spring Initializr,并配置模块相关基础信息
1.什么是Springboot
Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置
简单来说,它提供了一堆依赖打包Starter,并已经按照使用习惯解决了依赖问题---习惯大于约定。Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录
spring boot 致力于简洁,让开发者写更少的配置,程序能够更快的运行和启动。它是下一代javaweb框架,并且它是spring cloud(微服务)的基础。约定大于配置
我们为什么要用Springboot呢,Springboot有什么特点呢?
SpringBoot的特点:
1) 为基于Spring的开发提供更快的入门体验
2) 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
3) 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
4) SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
SpringBoot的核心功能:
起步依赖(简化依赖配置)
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
自动配置(简化常用工程相关配置)
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
辅助功能(内置服务器,……)
除了上面的功能,其实SpringBoot程序还有其他的一些优势,比如我们没有配置Tomcat服务器,但是能正常运行,这是SpringBoot入门程序中一个可以感知到的功能,也是SpringBoot的辅助功能之一。一个辅助功能都能做的这么6,太牛了。
官方文档下载: Index of /spring-boot/docs
我们怎么创建SpringBoot呢?
有两种方式:
-
maven的方式
maven方式创建: 启动类, 依赖, 这些都需要手动编写,但是不需要网络
-
Spring Initializr
spring initerzie 方式创建: 启动类, 依赖 生成,但是需要网络
步骤①:创建新模块,选择Spring Initializr,并配置模块相关基础信息
步骤②:选择当前模块需要使用的技术集
这样就创建好了,直接运行就行。
出现下图所示就代表创建成功了:
配置如何编写yaml
对于yaml文件中的数据,其实你就可以想象成这就是一个小型的数据库,里面保存有若干数据,每个数据都有一个独立的名字,如果你想读取里面的数据,肯定是支持的,下面就介绍3种读取数据的方式。
1.读取单一数据
yaml中保存的单个数据,可以使用Spring中的注解@Value读取单个数据,属性名引用方式
{一级属性名.二级属性名……}
注意:使用@Value注解时,要将该注解写在某一个指定的Spring管控的bean的属性名上方,这样当bean进行初始化时候就可以读取到对应的单一数据了。
2.读取全部数据
读取单一数据可以解决读取数据的问题,但是如果定义的数据量过大,这么一个一个书写肯定会累死人的,SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中
数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法是getProperties(String),参数填写属性名即可.
3.读取对象数据
单一数据读取书写比较繁琐,全数据读取封装的太厉害了,每次拿数据还要一个一个的getProperties(),总之用起来都不是很舒服。由于Java是一个面向对象的语言,很多情况下,我们会将一组数据封装成一个对象。SpringBoot也提供了可以将一组yaml对象数据封装一个Java对象的操作
首先定义一个对象,并将该对象纳入Spring管控的范围,也就是定义成一个bean,然后使用注解@ConfigurationProperties指定该对象加载哪一组yaml中配置的信息。
注意:
-
使用@ConfigurationProperties注解绑定配置信息到封装类中
-
封装类需要定义为Spring管理的bean,否则无法进行属性注入
yaml文件中的数据引用
如果你在书写yaml数据时,经常出现如下现象,比如很多个文件都具有相同的目录前缀
center:
dataDir: /usr/local/spring/data
tmpDir: /usr/local/spring/tmp
logDir: /usr/local/spring/log
msgDir: /usr/local/spring/msgDir
这个时候你可以使用引用格式来定义数据,其实就是搞了个变量名,然后引用变量了,格式如下:
baseDir: /usr/local/spring
center:
dataDir: ${baseDir}/data
tmpDir: ${baseDir}/tmp
logDir: ${baseDir}/log
msgDir: ${baseDir}/msgDir
注意:
在书写字符串时,如果需要使用转义字符,需要将数据字符串使用双引号包裹起来
menu: "system\user\add"
配置随机值
SpringBoot属性配置文件中可以通过${random}来产生int值,long值或者String字符串,来支持属性的随机值.
#随机
suke:
#随机字符串
str: ${random.value}
#随机int
number: ${random.int}
#随机long
bignumber: ${random.long}
#10以内的随机数
number1: ${random.int(10)}
#12-65的随机数
number2: ${random.int[12,65]}
多环境开发
什么是多环境?其实就是说你的电脑上写的程序最终要放到别人的服务器上去运行。每个计算机环境不一样,这就是多环境。常见的多环境开发主要兼顾3种环境设置,开发环境——自己用的,测试环境——自己公司用的,生产环境——甲方爸爸用的。因为这是绝对不同的三台电脑,所以环境肯定有所不同,比如连接的数据库不一样,设置的访问端口不一样等等。
多环境开发(yaml单一文件版)
-
配置激活选项
spring:
profiles:
active: dev
2..在配置文件添加三个英文状态下的短横线即可区分 ---
spring:
profiles:
active: prod # 启动prod
---
spring:
profiles: prod
server:
port: 8080
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: test
server:
port: 8082
在SpringBoot的新版本中spring.profiles已过时, 新版本推荐的是:
spring:
profiles:
active: test # 启动prod
---
spring:
config:
activate:
on-profile: prod
server:
port: 8080
---
spring:
config:
activate:
on-profile: dev
server:
port: 8081
---
spring:
config:
activate:
on-profile: test
server:
port: 8082