成都网站建设开发公,足球比赛直播回放完整版,淘宝客模板网站,怎样快速学好网站建设目录
1. 配置文件作用
2. 配置文件格式
3. properties 配置文件说明
3.1 properties 基本语法
3.2 读取配置文件
3.3 缺点
4. yml 配置文件说明
4.1 properties 基本语法
4.2 读取配置文件
4.3 yml 配置不同的数据类型
布尔值
整数值 null 值
配置对象 配置集合
…目录
1. 配置文件作用
2. 配置文件格式
3. properties 配置文件说明
3.1 properties 基本语法
3.2 读取配置文件
3.3 缺点
4. yml 配置文件说明
4.1 properties 基本语法
4.2 读取配置文件
4.3 yml 配置不同的数据类型
布尔值
整数值 null 值
配置对象 配置集合
配置 Map
Banner
多平台的文件配置
4.4 优点
5 properties VS yml 1. 配置文件作用
整个项目中所有重要的数据都是在配置文件中配置的比如
数据库的连接信息包含用户名和密码的设置项目的启动端口第三方系统的调用秘钥等信息用于发现和定位问题的普通日志和异常日志等。
如果没有配置信息那么 Spring Boot 项目就不能连接和操作数据库甚至不能保存可以用于排查问题的关键日志所以配置文件的作用是非常重要的。
2. 配置文件格式
Spring Boot 配置文件主要分为以下两种格式
.properties.yml properties 类型的配置文件属于“旧款”是创建 Spring Boot 项目时默认的文件格式而 yml 属于新版款式如果用户需要新款则使用新款。
1. 理论上讲 properties 可以和 yml ⼀起存在于⼀个项目当中当 properties 和 yml ⼀起存在于⼀个项目中时如果配置文件中出现了同样的配置比如 properties 和 yml 中都配置了“server.port” 那么这个时候会以 properties 中的配置为主也就是 .properties 配置文件的优先级最高但加载完 .properties 文件之后也会加载 .yml 文件的配置信息。
2. 虽然理论上来讲 .properties 可以和 .yml 共存但实际的业务当中我们通常会采取一种统一的配置文件格式这样可以更好的维护降低故障率。
3. properties 配置文件说明
properties 配置文件是最早期的配置文件格式也是创建 Spring Boot 项目默认的配置文件。
配置文件包括
Spring 的配置自定义配置
3.1 properties 基本语法
properties 是以键值的形式配置的key 和 value 之间是以“”连接的如
# 配置项目端口号
server.port9090
# 数据库配置信息
spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8
spring.datasource.usernameroot
spring.datasource.passwordroot# 自定义配置
mykey.key1aaa key 前面只要是字符串就可以。 但是规范为全部小写单词之间使用 . 分割。 一般来说类名首字母大写大驼峰 变量名首字母小写小驼峰 常量全大写单词之间使用_分割 3.2 读取配置文件
如果在项目中想要主动的读取配置文件中的内容可以使用 Value 注解来实现。
Value 注解使用“${}”的格式读取如下代码所示
RestController
public class ValueController {Value(${mykey.key1})private String key1;PostConstructpublic void postConstruct(){System.out.println();System.out.println(key: key1);}public String hi(){return hi~ ValueController...;}
}
我们通过 Value 获取自定义的配置文件中的值。 如果我们去掉 ${}那么可以看到最终结果直接将双引号里面的值赋值给了 key1 变量 RestController 在Spring Boot 启动时会注入到框架中注入到框架中时会执行 PostConstruct 初始化方法此时就能读取到配置信息了。
3.3 缺点
properties 配置是以 key-value 的形式配置的因此配置文件中会有很多的冗余的信息。 4. yml 配置文件说明
yml 是 YAML 是缩写它的全称 Yet Another Markup Language 翻译成中文就是“另⼀种标记语 言”。
4.1 properties 基本语法
yml 是树形结构的配置⽂件它的基础语法是“key: value”注意 key 和 value 之间使用英文冒号加空格的方式组成的其中的空格不可省略。
server:port: 8080 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8username: rootpassword: root 4.2 读取配置文件
同样通过Value 注解使用“${}”的格式读取
RestController
public class ValueController {Value(${spring.datasource.username})private String sqlusername;PostConstructpublic void postConstruct(){System.out.println();System.out.println(sqlusername:sqlusername);}public String hi(){return hi~ ValueController...;}
}4.3 yml 配置不同的数据类型
布尔值
mykey:key1: true 整数值
mykey:key1: 10 null 值
mykey:key1: ~ 对于单引号和双引号的区别
String:str1: Hello \n Spring Boot.str2: Hello \n Spring Boot.str3: Hello \n Spring Boot. 配置对象
Student:id: 1name: dannyage: 18
public class Student {private Integer id;private String name;private Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}
}我们可以看到直接写上面一个类非常麻烦需要加入 get 和 set 方法因此我们可以通过添加注解 Data 来帮助我们直接写 get 和 set 方法以及 toString 方法还有一些构造函数。
ConfigurationProperties(prefix student)
Component
Data
public class Student {private Integer id;private String name;private Integer age;
}通过五大注解接收对象将对象存放至 Spring 中此处使用 Component 注解
通过 ConfigurationProperties(prefix student) 将 yml 文件中的 Student 赋值给这个对象“prefix ”可以省略此处的 student 首字母要小写。
RestController
public class ValueController {Autowiredprivate Student student;PostConstructpublic void postConstruct(){System.out.println();System.out.println(student);System.out.println();}public String hi(){return hi~ ValueController...;}
} 配置集合
Student:id: 1name: dannyage: 18dbtypes:- mysql- sqlserver- db2ConfigurationProperties(prefix student)
Component
Data
public class Student {private Integer id;private String name;private Integer age;private ListString dbtypes;
} 配置 Map
Student:id: 1name: dannyage: 18dbtypes:- mysql- sqlserver- db2map2:k1: kk1k2: kk2k3: kk3
ConfigurationProperties(prefix student)
Component
Data
public class Student {private Integer id;private String name;private Integer age;private ListString dbtypes;private MapString,String map2;
} Banner
我们可以通过在线工具直接生成 bannerSpring Boot banner在线生成工具制作下载英文banner.txt修改替换banner.txt文字实现自定义个性化启动banner-bootschool.netSpring Boot banner工具实现在线生成banner轻松修改替换实现自定义banner让banner.txt文件内容更有趣是很棒的Spring Boot banner自定义和命令行ascii文字工具还可以生成linux、MAC各系统命令行终端ascii文字有了它你的项目会变得有意思。https://www.bootschool.net/ascii 我们选择下载文件将下载好的文件命名为 banner.txt 粘贴在 idea 的 resource 文件夹下 重新运行程序可以看到此时生成的是我们刚刚设置的文件 多平台的文件配置
实际工作中的开发环境分为开发环境自测、测试环境测试人员进行测试测试环境的数据都是测试人员/开发人员造的数据是假数据、预发布环境和发布环境通常数据是一样的都是线上真实的用户数据。 我们希望在不同的配置环境中执行不同的配置文件因此将主文件中的配置注释并进行设置 RestController
public class ValueController {Value(${spring.datasource.username})private String sqlusername;Value(${spring.datasource.password})private String password;Autowiredprivate Student student;PostConstructpublic void postConstruct(){System.out.println();System.out.println(sqlusername:sqlusername);System.out.println(password:password);System.out.println();}public String hi(){return hi~ ValueController...;}
}设置为 test 环境下 设置为 prod 环境下 综上多平台文件配置的步骤可以总结如下
先写各个环境的配置文件application-xxx.yml在主配置文件 application.yml 中设置环境参数
4.4 优点
yml 的优点
yml 可读性高写法简单、易于理解它的语法和 JSON 语言类似。yml 支持更多的数据类型它可以简单表达清单 (数组)、散列表标量等数据形态。它使用空白符号缩进和大量依赖外观的特色特别适合用来表达或编辑数据结构、各种配置文件等。yml 支持更多的编程语言它不止是 Java 中可以使用在 Golang、PHP、Python、Ruby、JavaScript、Perl 中同样可以使用。
5 properties VS yml
properties 是以 keyvalue 的形式配置的键值类型的配置⽂件而 yml 使用的是类似 json 格式的树形配置方式进行配置的yml 层级之间使用换行缩进的方式配置key 和 value 之间使用“: ”英文冒号加空格的方式设置并且空格不可省略。properties 为早期并且默认的配置文件格式但其配置存在一定的冗余数据使用 yml 可以很好的解决数据冗余的问题。yml 通用性更好支持更多语言如 Java、Go、Python 等如果是云服务器开发可以使⽤⼀份配置文件作为 Java 和 Go 的共同配置文件。yml 支持更多的数据类型。
当我们关闭再打开 idea可以看到 .properties 文件出现了乱码 因为它的格式为 而 .yml 文件的格式为 因此需要修改 .properties 文件的格式 之后再打开 .properties 文件不会再出现乱码。