ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

yml语法01

2021-11-06 22:34:14  阅读:189  来源: 互联网

标签:01 name 配置文件 spring profiles 语法 dev zhangsan yml


yml语法

引号的区别

双引号

不会转义字符串里面的特殊字符,特殊字符会作为本身想表达的意思

name:  name: "zhangsan \n lisi"   
输出:zhangsan 换行 lisi

单引号

会转义字符,特殊字符最终会以普通字符输出

name: 'zhangsan \n lisi'    
输出:zhangsan \n lisi

对象和Map

friends:
	name: zhangsan
	age: 20
或者:
friends: {name: zhangsan,age: 20}

数组(List、Set)

用- 来表示每一个元素

pets:
	- cat
	- dog
	- pig
或者:
pets: [cat,dog,pig]

搭配使用的注解

  • (写在类上)@ConfigurationProperties(profix: “person”)

告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定

profix: “person”

指定前缀(配置文件中的哪个属性下面的所有属性进行一一映射)

  • (写在属性上)@Value("${person.name}")

    ${}从字面量、配置文件中获取值

    #{}SpringEL(表达式)

  • @ConfigurationProperties 和 @Value获取值的比较

@ConfigurationProperties@Value
功能批量注入配置文件中的值只能一个个注入
松散绑定(松散语法)支出不支持
SpEL(Spring表达式)不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

两个注解都能获取到配置文件中的值;

如果说只是在某个业务中需要获取一下配置文件中的某项值,就用@Value

如果编写了一个JavaBean来和配置文件进行映射,就用@ConfigurationProperties

添加依赖

<!--导入配置文件处理器,导入此依赖后在配置文件中给属性绑定值时会有提示-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

加载指定的配置文件

把配置文件拆分成多个,花括号中的值可以有多个

@PropertySource(value = {“classpath:person.properties”})

给容器中添加组件

@Configuration//指明当前类是一个配置类
public class MyAppConfig {

    @Bean//
    public HelloController helloSerbice(){
        return new HelloController();
    }
    
}

文档块

文档块相当于多个文件

spring
	profiles
		active: dev
server
	port: 8080
---
spring
	profiles: dev
server
	port: 8081
---
spring
	profiles: test
server
	port: 8082

激活配置文件

  • 在配置文件中指定
spring.profiles.active=dev
  • 命令行参数

Java -jar 包名 --spring.profiles.active=dev

  • 虚拟机参数

-Dspring.profiles.active=dev

标签:01,name,配置文件,spring,profiles,语法,dev,zhangsan,yml
来源: https://blog.csdn.net/H5214/article/details/121185880

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有