SpringBoot配置文件yaml与properties

SpringBoot配置文件yaml与properties

类型application.properties

aoolication.yaml

1.配置文件

作用:修改springboot自动配置的默认值

YAML以数据为中心,

server:
	port:8081

yaml语法:

  1. 用缩进来控制层级的关系

  2. key:(空格)value表达键值对

  3. 属性和值大小写敏感

yaml里面的key可以些什么

1.字面量普通的值(数字,字符串,布尔)

字符串默认不加上单引号或者双引号

“”双引号会转义里面的特殊字符\n就是换行符

‘’单引号就会直接输出\n

key: value
2.对象,Map
friends:
	lastName: xxxx
	age: 20
friends: {lastName: xxx,age: 20}
3.数组
pets:
-(空格)xxx
- xxx
- xxx

行内写法

pets: [cat,dog,pig]
package com.chiguozi.springtest2.pojo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
//默认加载全局加载文件的值
@ConfigurationProperties(prefix = "person")
//@ImportResource(value = {"classpath:beans.xml"})可以标注在一个配置类上,这样就可以加载beans.xml
//@PeopertySource(value = {"classpath:person.properties"})加载专用的
public class Person {
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

person:
  name: chiguozi
  password: helloc

这样就可以自动注入文件

或者在properties这样写

person.name=chiguozi
person.password=helloc
#记得默认是gbk的要改成utf-8  

@Value和@ConfigurationProperties中间的区别

或者在类里面的成员变量上面添加

@Value("${person.name}")或者

@Value("#{11*3}")

但是这种语法不支持松散语法的绑定,例如lastName和last-name的互等就是松散绑定。@ConfigurationProperties倒是支持这个

也有个最大的缺点,不能注入map类型

也不支持校验。

最后有个优点,那就是可以写算(SpEL)

springBoot推荐给容器中添加组件的方式——全注解

1.写配置类

@Configuration
public class MyConfig{
    //将方法返回值添加到容器中;容器中这个组件默认的id就是方法名
    @Bean
    public HelloService helloService(){
        return new HelloService();
    }
}

2.调用的地方

public class xxx{
    @AutoWired
    ApplicationContext ioc;
    public boolean xxx(){
        return ioc.containsBean("helloService")
	}
}
配置文件占位符

1.随机数

${random.int[1024,65536]}
${random.int(10)}

2.占位符获取之前配置的值

${xxx.xxx:默认值}

${xxx.xxx}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值