SpringBoot配置文件相关

获取配置文件的值

配置文件

yml格式:

person:
  name: 张三
  age: 20
  birth: 2000/10/12
  maps: {k1: v1,k2: 12}
  lists:
    - lisi
    - wangwu
  dog:
    name: litter_dog
    age: 10

properties格式:

person.name=张三
person.age=20
person.birth=2000/10/12
person.maps.k1=v1
person.maps.k2=12
person.lists:lisi,wangwu
person.dog.name=litter_dog
person.dog.age=10

乱码问题:

如果运行后获取的中文值时乱码可以通过File ----> Setting 搜索File Encodings进行设置
在这里插入图片描述

注解@ConfigurationProperties

/**
* @ConfigurationProperties(prefix = "person")告诉springboot,
* 获取前缀为person的数据,如果需要获取使用直接在其他类中@Autowired注入即可
* */
@ConfigurationProperties(prefix = "person")
@Data
@Component //注入spring容器中
public class Person {
    private String name;
    private Integer age;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

结果:
在这里插入图片描述

注解@Value

@Data
@Component
public class Person {
    @Value("person.name")
    private String name;
    @Value("#{11*2}")
    private Integer age;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

结果:
在这里插入图片描述

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

项目@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

注解@PropertySource

使用:@PropertySource(value={“classpath:person.properties”})
作用:加载某个配置文件中的值,@ConfigurationProperties是全局配置,这个可以设置加载局部配置

注解@ImportResource

使用:@ImportResource(location={“classpath:beans.xml”})
作用:导入Spring的配置文件,让配置文件里面的内容生效(注解在配置类上)

配置文件占位符

随机数

${random.value}、${random.int}、${random.long}、${random.int(10)}、  ${random.int(1024,65536)}

占位符默认值

占位符获取之前配置的值,如果没有可以使用指定的默认值

${person.hello}:获取之前配置文件中的值

${person.hello:hello}:获取之前配置文件中的值,如果没有,则填hello

Profile(切换环境)

使用方式:

  • 配置文件名application-{profile}.properties/yml,默认使用application.properties/yml
  • 在application.properties中配置激活哪个文件spring.profiles.active=dev,这里的dev为后缀{profile}即可激活
  • 如果是yml的格式可以使用文档块的形式配置
    例子:
server:
    port: 8081
spring:
    profiles:
        active: prod
---------------------------------
server:
    port: 8083
spring:
    profiles: dev
---------------------------------
server:
    port: 8084
spring:
    profiles: prod

根据spring.profiles.active选择激活哪个文档块

  • 在运行时使用命令行形式激活 --spring.profiles.active=dev
    也可以java -jar jar包 --spring.profiles.active=dev

配置文件加载位置

springboot启动会扫描以下位置的application.properties/yml作为Springboot的默认配置文件

file:./config/ ---> file:./ ---> classpath:/config/ --->classpath:/

高优先级的配置会覆盖低优先级的配置

在打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置

java -jar jar包 --spring.config.location=配置文件路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值