SpringBoot配置文件 |
您所在的位置:网站首页 › 和平精英中修改配置文件是什么意思呀 › SpringBoot配置文件 |
🧸欢迎来到dream_ready的博客,📜相信您也对这篇博客也感兴趣o (ˉ▽ˉ;) 🧸祝诸君前程似锦,归来仍初心不忘! 📜Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习-CSDN博客 目录 1、配置文件的作用 / 什么是配置文件? 什么是配置文件 配置文件的作用? 常规作用 SpringBoot中配置文件的作用 2、SpringBoot中的配置文件及格式 3、配置文件的优先级 4、properties配置文件详解及语法 5、properties缺点分析 6、yml配置文件详解及语法 使用yml连接数据库 yml配置不同数据类型及null 7、读取配置文件 读取properties格式的配置文件 读取yml中的配置文件 8、value中的转义字符和单双引号 9、配置对象 10、配置集合 11、配置Map 12、yml 优缺点 1、配置文件的作用 / 什么是配置文件? 什么是配置文件配置文件是包含应用程序或系统配置信息的文件。这些文件通常用于存储和管理应用程序的设置,以便在运行时进行配置和自定义。配置文件可以采用不同的格式,如文本文件、JSON、XML、YAML等,具体格式取决于应用程序的需求和开发者的偏好。 计算机上有数以千计的配置⽂件,我们使⽤的绝⼤多数软件,⽐如浏览器,微信,Idea,甚⾄电脑,手机,都离不开配置⽂件。我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上,⽐如C:\Users, C:\Windows⽂件夹,以及各种 *.config, *.xml ⽂件 配置文件的作用? 常规作用配置⽂件主要是为了解决硬编码带来的问题, 把可能会发⽣改变的信息, 放在⼀个集中的地⽅, 当我们启动某个程序时, 应⽤程序从配置⽂件中读取数据, 并加载运⾏ 硬编码是将数据直接嵌⼊到程序或其他可执⾏对象的源代码中, 也就是我们常说的“代码写死” 使用配置文件,可以使程序完成用户和应用程序的交互,或者应用程序与其他应用程序的交互 SpringBoot中配置文件的作用主要解决硬编码的问题,很多项目或者框架的配置信息也放在配置文件中,比如: 项目的启动端口数据库的连接信息(包含用户名和密码的设置)第三方系统的调用密钥等信息用于发现和定位问题的普通日志和异常日志等 2、SpringBoot中的配置文件及格式SpringBoot⽀持并定义了配置⽂件的格式,也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的 SpringBoot的配置文件,有三种格式 propertiesymlyaml后两者其实是同一种类型的配置文件,yml为yaml的简写,实际开发中出现频率最⾼. yaml 和yml 的使⽤⽅式⼀样 但事实上,只支持三个文件(.前的命名必须是application这个单词) applicaion.propertiesapplicaion.ymlapplicaion.yaml当然,后两者其实也是同一种文件 当应⽤程序启动时,Spring Boot会⾃动从classpath(类路径)中找到并加载 application.properties 和 application.yaml 或者 application.yml ⽂件. 如下图所示: 注:企业开发中,通常只使用其中一个文件 4、properties配置文件详解及语法properties 是以键值对的形式配置的,key 和 value 之间是以 "=" 连接的 key的格式建议是小写,单词之间使用.分割 代码如下: # 配置项⽬端⼝号 server.port=8080 # 配置数据库连接信息 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8& spring.datasource.username=root spring.datasource.password=root注:配置文件中使用 “#” 来添加注释信息 本篇博客会讲解一部分常用配置信息,若想查看更多配置信息,可以参考官网 SpringBoot配置 5、properties缺点分析properties 配置是以 key-value 的形式配置的,如下图所⽰: 从上述配置key看出,properties配置文件中会有很多冗余的信息 想要解决这个问题,就可以使用yml配置文件的格式化了(实际工作中也是yml用的更多) 6、yml配置文件详解及语法yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔. yml基本语法: yml 是树形结构的配置⽂件,它的基础语法是"key: value"key 和 value 之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略基础语法如下: 第⼀项的配置为正确的,key 也是⾼亮显⽰的.,第⼆项没有空格是错误的使⽤⽅式,第⼆项的 key 也 没有⾼亮显⽰ 使用yml连接数据库yml使用举例: ip地址,端口号,数据库库名(此处是mycnblog)要根据实际情况修改 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8&useSSL=false username: root password: root如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。 @Value 注解使⽤" ${} "的格式读取 properties 配置如下: mykey.key1 = bite读取代码如下: import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class PropertiesController { @Value("${mykey.key1}") private String key1; @RequestMapping("/key") public String key(){ return "读取到值:"+key1; } }最终执行效果 yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可,@Value 注解使⽤" ${} "的格式读取 yml格式是换行有缩进的,去掉换行,缩进和冒号,每两个单词间用.分割,和properties书写格式一样 实现代码如下: string: hello: bite读取代码如下: @RestController public class ReadYml { @Value("${string.hello}") private String hello; @RequestMapping("/ymlKey") public String key(){ return "读取到值:"+hello; } }最终执行效果: 此处以yml格式举例 字符串默认不⽤加上单引号或者双引号。单引号会转义特殊字符,使其失去特殊功能,始终是⼀个普通的字符串. 双引号不会转义字符串⾥⾯的特殊字符,特殊字符会表⽰本⾝的含义 此处的转义理解起来会有些拗, \n 本意表⽰的是换⾏使⽤单引号会转义, 就是说, \n 不再表⽰换⾏了, ⽽是表⽰⼀个普通的字符串使⽤双引号不会转义, 表⽰ \n 表⽰的是它本⾝的含义, 就是换⾏代码举例: String: str1: Hello \n Spring Boot. str2: 'Hello \n Spring Boot.' str3: "Hello \n Spring Boot."读取代码如下: @RestController public class ReadYml { @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"; } }最终执行效果: 此处以yml格式举例 要使⽤注解 @ConfigurationProperties 来读取,注解括号内属性填写key中的“老大” student: id: 1 name: Java age: 18或者是使⽤⾏内写法(与上⾯的写法作⽤⼀致): student: {id: 1,name: Java,age: 18}实体类定义如下: 注意 @ConfigurationProperties 的用法,用了prefix属性,并将key的“老大”赋值给它 import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; // 下面这个注解起到读取配置文件对应内容并赋值给该类的操作 @ConfigurationProperties(prefix = "student") @Component @Data public class Student { private int id; private String name; private int age; }调⽤类的实现如下: @RestController public class StudentController { @Autowired private Student student; @RequestMapping("/readStudent") public String readStudent() { return student.toString(); } }最终执行效果: 此处以yml格式举例 要使⽤注解 @ConfigurationProperties 来读取,注解括号内属性填写key中的“老大” 配置内容(注意格式): -后一定要加空格 如果不加空格,这部分内容会变成一个整体,统一赋值给对应属性 dbtypes: name: - mysql - sqlserver - db2实体类如下: @Component @ConfigurationProperties("dbtypes") @Data public class ListConfig { private List name; // 也可以使用数组来接收 // private String[] name; }访问集合的实现如下: @RestController public class ReadYml2 { @Autowired private ListConfig listConfig; @RequestMapping("/readList") public String readList(){ return listConfig.toString(); } } 11、配置Map此处以yml格式举例 要使⽤注解 @ConfigurationProperties 来读取,注解括号内属性填写key中的“老大” maptypes: map: k1: kk1 k2: kk2 k3: kk3或者使用行内写法(与上面的写法作用一致): maptypes: {map: {k1: kk1,k2: kk2, k3: kk3}}实体类如下: @Component @ConfigurationProperties("maptypes") @Data public class MapConfig { private HashMap map; }访问Map的实现如下: @RestController public class ReadYml2 { @Autowired private MapConfig mapConfig; @RequestMapping("/readMap") public String readStudent(){ return mapConfig.toString(); } } 12、yml 优缺点优点: 可读性⾼,写法简单, 易于理解⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态.⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤缺点: 不适合写复杂的配置⽂件对格式有较强的要求(⼀个空格可能会引起⼀场⾎案)不适合写复杂的配置⽂件如图: 🧸欢迎您于百忙之中阅读这篇博客,📜希望这篇博客给您带来了一些帮助,祝您生活愉快! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |