怎么免费建设网站,互联网公司排名前十的在哪些城市,4核8g云服务器,cms企业网站管理系统SpringBoot的配置文件一、SpringBoot配置文件分类二、yaml 概述三、多环境配置四、Value 和 ConfigurationProperties五、总结一、SpringBoot配置文件分类
SpringBoot 是基于约定的#xff0c;很多配置都是默认的#xff08;主方法上SpringBootApplication注解的子注解Enabl…
SpringBoot的配置文件一、SpringBoot配置文件分类二、yaml 概述三、多环境配置四、Value 和 ConfigurationProperties五、总结一、SpringBoot配置文件分类
SpringBoot 是基于约定的很多配置都是默认的主方法上SpringBootApplication注解的子注解EnableAutoConfiguration实现的是在META-INF/spring.factories中的自动配置了可以看狂神的运行原理的解释它是boot2解析boot3里面实现用的更多的是流Stream其他没怎么变。
但是如果想使用自己的配置替换默认配置或添加其他配置的话可以使用application.properties或者application.yml(application.yaml)进行配置。
遵循框架的规则默认配置文件名称application在同一级目录下的优先级:propertiesymlyaml这个如果没看源码也可以通过测试得出。
二、yaml 概述
首先需要明白的yaml是一种语言是 “YAML Ain’t a Markup Language” YAML不是一种标记语言的递归缩写。百度上解释是它是以数据作为中心而不是以标记语言为重点.yml 是用YAML语言编写的配置文件YAML的诞生是参考JSONXML和SDL等语言。 居然是语言就有它的语法、格式。
下面给出是.yml配置文件的案例
house:family:name: Doeparents:- John- Janechildren:- Paul- Mark- Simoneaddress:number: 34street: Main Streetcity: Nowheretownzipcode: 12345YAML语法特点 #可以用来注释每个散列表的成员用冒号空白: 分开键值和内容。空格必须存在使用缩进表示层级关系但是不能使用TAB键只允许空格结构可以通过缩进来表示连续的成员通过减号-“来表示或者使用”{} 注意 “ ” 双引号不会转义字符串里面的特殊字符 特殊字符会作为本身想表示的意思 比如 name: “kuang \n shen” 输出 kuang 换行 shen ‘’ 单引号会转义特殊字符 特殊字符最终会变成和普通字符一样输出 比如 name: ‘kuang \n shen’ 输出 kuang \n shen 引用狂神说的注意 下面写一个 application.yml 配置文件进行测试
server:port: 9000 #修改端口号servlet:context-path: /xxx #修改上下文路径需要注意的是它还可以进行参数引用使用${??}例如
port: 9001
server:port: ${port}servlet:context-path: /xxx.properties小编觉得应该都会用就不多写了yml是被推荐的配置方式更直观吧。
三、多环境配置
在项目进行过程中除了有开发环境还有测试环境上线环境等。每个环境有不同的配置信息例如端口上下文件数据库的url用户名、密码等等。
使用多环境配置文件可以方便的切换不同的配置。
使用方式创建多个配置文件名称规则application-环境名称.properties(yml)
例如 创建开发环境的配置文件application-dev.properties(application-dev.yml) 创建测试使用的配置文件application-test.properties(application-test.yml)
配置下面的语句就可以实现环境切换
.yml:
spring:profiles:active: 环境名称.properties
spring.profiles.active环境名称测试
准备好了三个配置文件 application.yml的内容
spring:profiles:active: dev
server:port: 8080application-dev.yml的内容
server:port: 9001servlet:context-path: /yyy测试结果 可以观察出环境进行了切换后application.yml中的后面内容不起效.
四、Value 和 ConfigurationProperties
下面是application.yml配置。
server:port: 8082servlet:context-path: /demo# 配置keyvalue
school:name:- 合肥师范- 武汉大学address: 合肥Value测试 * ConfigurationProperties测试 如果直接这样那么配置文件中的name注入不进去会为null因为配置文件中的是多成员。
如果是这样那么就可以注入成功。数组也是可以的。 注意ConfigurationProperties 注解的使用一定要记得要对 prefix属性进行赋值默认是空字符串 它会在配置文件中查询 prefix 这个元素然后进行“映射”。 下面可以看看狂神说这个图对Value和ConfigurationProperties进行个对比 五、总结
小编写的这篇博客没有对properties配置进行说明其实用法是一样的。而且SpringBoot官方推荐我们使用yaml进行配置所以这里讲解和例子都是用的yml配置。
如果我们在某个业务中只需要获取配置文件中的某个值可以使用一下 value
如果说我们专门编写了一个JavaBean来和配置文件进行一一映射就直接ConfigurationProperties不要犹豫因为它不单单可以做到简单类型的映射。
推荐文献 狂神说SpringBoot03yaml配置注入