【SpringBoot】SpringBoot配置文件

1.配置文件的作用

整个项目中所有重要的数据都是在配置文件中配置的。比如:

  • 数据库的连接信息(包含⽤户名和密码的设置);
  • 项⽬的启动端口;
  • 第三⽅系统的调⽤秘钥等信息;
  • ⽤于发现和定位问题的普通⽇志和异常⽇志等。

2.配置文件的格式

Spring Boot 配置⽂件主要分为以下两种格式:

  • .properties
  • .yml

如下图所示:
配置文件
properties 类型的配置文件是SpringBoot项目默认的文件格式。

特殊说明:
properties 可以和 yml ⼀起存在于⼀个项⽬中,.properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。但在实际应用中,推荐只使用一种。


3. properties配置文件说明

基本语法

properties 是以键值的形式配置的,key 和 value 之间是以"="连接的。
例如:
配置项目端口号:

# 配置项⽬端⼝号
server.port=8081

数据库连接:

#配置数据库连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cate_db?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=111111

自定义配置:

#自定义配置
mykey.key1=hi

配置文件中使用"#"注释

读取配置文件

在项目中,想要主动读取配置文件,可以使用注解@Value来实现。

格式:@Value(“${}”)

举例:读取自定义的配置:
配置中key1的值为hi,在类中定义一个key1,用@Value获取,在postConstruct方法打印。

@RestController
public class ValueController {
    @Value("${mykey.key1}")
    private String key1;

    @PostConstruct
    public void postConstruct(){
        System.out.println("===============================");
        System.out.println("key:"+key1);
    }

    public String hi(){
        return "hi";
    }
}

可以看到,结果如下:
在这里插入图片描述输出了hi。


4. yml配置文件说明

yml是树形结构的配置文件。

基础语法:key: value
注意: key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略

yml连接数据库

使用properties 连接数据库时,总是有一大串重复的字符。如图所示。
在这里插入图片描述而使用yml连接数据库,则省略了很多:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/cate_db?characterEncoding=utf8
    username: root
    password: 111111

注意:一定要在冒号和value之间加空格!!!格式很重要!!!

yml配置不同数据类型及null

#boolean类型
mykey:
  key1: true

#整数
int:
  key2: 10

#NULL,~代表null
boo:
  key3: null
  key4: ~

注意事项:关于配置文件中加引号的情况:

String:
  str1: Hello \n Spring Boot.
  str2: 'Hello \n Spring Boot.'
  str3: "Hello \n Spring Boot."

无引号ps单引号ps双引号的对比,来看看输出结果:
在这里插入图片描述双引号会解析内容,比如上面的例子,把\n解析成了换行。

yml配置读取

yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可。

    @Value("${spring.datasource.username}")
    private String sqlusername;

    @PostConstruct
    public void postConstruct(){
        System.out.println("===============================");
        System.out.println("key:"+key1);
        System.out.println("sqlusername"+sqlusername);
    }

结果如下图所示:
在这里插入图片描述使用yml配置对象

定义一个学生对象:

student:
  id: 1
  name: 温温
  age: 18

创建一个对应的学生类:

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private Integer id;
    private String name;
    private Integer age;
}

补充:
注解1:使用@Data注解可以帮助我们直接写get, set, toString等方法,就不用手动写了,但是使用此注解需要引入lombok依赖

注解2:@Component,将这个对象交给Spring管理。
注解3:@ConfigurationProperties,进行赋值
,如果去掉这个注解,则student类的属性值都为空。

进行配置读取:

    @Autowired
    private Student student;

    @PostConstruct
    public void postConstruct(){
        System.out.println("===============================");
        System.out.println(student);
        System.out.println("===============================");
    }

结果如下:
在这里插入图片描述使用yml配置集合

在上面代码的基础上配置一个集合dbtypes,使用"-"。配置文件如下:

student:
  id: 1
  name: 温温
  age: 18
  dbtypes:
    - mysql
    - java
    - web

student类如下:

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private List<String> dbtypes;
}

输出结果如下:
在这里插入图片描述直接在配置文件和类中添加属性即可。
使用yml配置map
配置文件如下:

student:
  id: 1
  name: 温温
  age: 18
  dbtypes:
    - mysql
    - java
    - web
  map:
    k1: kk1
    k2: kk2
    k3: kk3

student类如下:

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private List<String> dbtypes;
    private Map<String,String> map;
}

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

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值