怎么建立信息网站平台,win主机怎样实现wordpress固定链接静态化,西安seo关键字优化,天天传媒有限公司网站本篇博客讲解 1.SpringBoot配置文件的格式以及对应的语法 2.了解两个配置文件格式的差异、优缺点。 我们这里只做简单的介绍。看会#xff0c;了解#xff0c;学会读取就行了。 因为配置文件实在太多了#xff0c;这里只做基础的介绍。 一、配置文件的作用 前言 计算机中有许… 本篇博客讲解 1.SpringBoot配置文件的格式以及对应的语法 2.了解两个配置文件格式的差异、优缺点。 我们这里只做简单的介绍。看会了解学会读取就行了。 因为配置文件实在太多了这里只做基础的介绍。 一、配置文件的作用 前言 计算机中有许许多多的配置文件。许许多多的软件也离不开配置文件。 计算机上如 C:\Users,C:\Windows文件夹以及各种*.config, *.xml 文件。都是配置文件。 作用 1.配置文件主要是解决编码带来的问题把可能会发生改变的信息放在一个集中的地方当们启动某个程序时应用程序从配置文件中读取数据并加载运行。 2.使用配置文件可以使程序完成用户和应用程序的交互或者应用程序与其他应用程序的交互。 硬编码是将数据直接嵌入到程序或者其他可执行对象的源代码中也就是我们常说的“代码写死”。
配置文件应用示例
比如手机字体大小
如果采用硬编码的方式直接指定字体大小。那么所有用户使用的都是同一个字体大小。
但是不同用户有不同的偏好。我们可以把手机字体的大小放在配置文件中当程序启动时读取配置以用户设置的字体大小来显示。 二、Spring Boot配置文件 Spring Boot的三种配置文件 1.application.properties 2.application.yml 3.application.yaml 2和3是一样的。yml是yaml的简写。因此实际上可以认为有两个。实际开发中yml出现频率最高。当应用程序启动时SpringBoot会自动从classpath路径找到并加载配置文件。.properties类型的配置文件较老老.yml类型的配置文件是较新的同一个配置项在两个配置文件都存在。那么properties的优先。不同配置项在properties和yml中配置都会生效。 整体配置项取两个配置文件的并集。 SpringBoot配置文件的常用功能 项目的启动端口数据库的连接信息包含用户名和密码的设置第三方系统的调用密钥等信息用于发现和定位问题的普通日志和异常日志等 在之前我们写的项目中就用到了端口号的定义和数据库的连接信息。
Spring Boot在创建项目时就已经帮我们创建了配置文件。
application.properties//文件
三、properties类型配置文件
properties配置文件是最早期的配置文件格式也是创建SpringBoot项目默认的配置文件
3.1基本语法
properties是以键值的形式配置的key和value之间是以等号“”连接的
例如
配置项目端口号
#配置项目端口号
server.port1208
配置数据库连接信息
#配置数据库连接信息
spring.datasource.urljdbc:mysql://127.0.0.1:3306/qyyDatabase?characterEncodingutf8
spring.datasource.usernameroot
spring.datasource.passwordrootps配置文件中用 # 来添加注释信息
3.2读取配置文件
如果在项目中想要主动的读取配置文件中的内容可以使用
Value来实现。Value注解使用“${ }”的格式读取。
若只加了 那么会读取 中的作为内容来返回。
示例
properties配置如下
mykey.kuy1 qyy 编辑java代码来读取配置文件
Value读取
RestController
public class PropertiesController {Value(${mykey.key1})private String key1;RequestMapping(/key)public String key(){return 读取到值key1;}
}
运行结果 3.3properties缺点分析
properties配置⽂件中会有很多的冗余的信息
如这些 而yml类型的配置文件就没有这些。
四、yml类型配置文件
yml 是 YAML 缩写它的全称 Yet Another Markup Language翻译成中文就是“另一种标记语言.
4.1yml基本语法
yml 是树形结构的配置文件它的基础语法是key: value.
注:
:后面一定要有空格。空格不可省略。
示例
使用tml配置端口号
server:port: 1208
使用yml连接数据库
spring:datasource:url: jdbc:mysql://127.0.0.0:3306/qyy_database?characterEncodingutf8useSSLfalseusername: rootpassword: 12345678
4.2yml配置不同数据类型及null
# 字符串
string.value: Hello# 布尔值true或false
boolean.value: true
boolean.value1: false# 整数
int.value: 10# 浮点数
float.value: 3.14159# Null~代表null
null.value: ~# 空字符串
# 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty.value:
使用字符串如何表示null呢
什么都不加就行了。或者加 / 代表空字符串。
4.3yml配置字符串读取
与properties类似。
yml配置如下
Value注解读取
string:hello: qyy
RestController
public class PropertiesController {Value(${string.hello})private String key1;RequestMapping(/key)public String key(){return 读取到值key1;}
} 注意事项value值加单双引号
字符串默认不用加单引号或者双引号如果加英文的单引号可以表示特殊的含义。
如在application.yml配置如下信息。
string:hello: qyystr1: Hello \n Spring Boot.str2: Hello \n Spring Boot.str3: Hello \n Spring Boot.
读取程序实现代码如下 Value(${string.str1})private String str1;Value(${string.str2})private String str2;Value(${string.str3})private String str3;RequestMapping(/yml)public String readYml(){System.out.println(str1);System.out.println(str2);System.out.println(str3);return yml;}
运行结果
Hello \n Spring Boot.
Hello \n Spring Boot.
Hello Spring Boot. 结果发现 字符串默认不用加单引号或双引号单引号中和不加引号中的转义字符不会生效双引号中的转义字符会生效 4.4yml配置对象
我们还可以在yml中配置对象
配置示例如下有两种写法。
一种是换行分开写还有一种是行内写法他们写法作用一致
student1:id: 1name: javaage: 17student2: {id: 1,name: java,age: 18}
如何读取配置中的对象呢
此时要使用别的注解
ConfigurationPropertiesComponent注解读取
注意还要配合
用这个注解来读取对象。
ConfigurationProperties(prefix student1)
Component
Data
public class StudentInfo {private int id;private String name;private int age;}
打印对象 /*** yml配置读取对象*/Autowiredprivate StudentInfo student;RequestMapping(/student)public String readStudent(){System.out.println(student.toString());return student.toString();} 运行结果
StudentInfo(id1, namejava, age17) 4.5yml配置集合
配置文件也可以配置list集合如下所示
#配置集合
dbtypes:name:- mysql- sqlserver- db2
- 后面的空格不可省略虽然不会报错但是含义变了。如果空格省略这几个元素会当做一个元素来处理。
集合的读取和对象一样也是用这个注解
ConfigurationPropertiesComponent注解读取
Component
ConfigurationProperties(listtypes)
Data
public class ListInfo {private ListString name;
}
运行结果 4.6yml配置Map
配置文件也可以配置map配置代码如下
可以换行写也可以使用行内写法
maptype1:map:k1: kk1k2: kk2k3: kk3maptype2: {map: {k1: kk1,k2: kk2,k3: kk3}}
读取代码如下
Component
ConfigurationProperties(maptype2)
Data
public class MapConfig {private HashMapString,String map;
}
打印代码如下 Autowiredprivate MapConfig mapConfig;RequestMapping(/readMap)public String readMap(){return mapConfig.toString();}
运行结果 4.7yml的优缺点 优点 1.可读性高写法简单易于理解 2.支持更多的数据类型可以简单表达对象、数组、List、Map等数据类型 3.支持更多的编程语言不止是java中可以使用在Golang、python、Ruby、JavaScript中也可以使用 缺点 1.不适合写复杂的配置文件 如properties格式配置如下 转换为yml keycloak:realm: demoresource: fm-cache-cloudcredentials:secret: d4589683-Oce7-4982-bcd3security:- authRoles:- usercollections:- name: ssologinurlpatterns:- /login/* 转换过程比较花费精力如果配置更复杂一点可读性会更差,代码也会更难写 2. 对格式有较强的要求(⼀个空格可能会引起一场血案) 五、综合性练习
下篇预告
验证码案例我们会在下一篇博客中单独讲解验证码案例哦。