springboot_02_配置文件

本文介绍SpringBoot中配置文件的应用,包括properties与yml文件的区别及使用场景,如何通过@Value和@ConfigurationProperties注解来映射配置文件中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.springboot配置文件类型

springboot是基于约定的,所以很多配置都有默认值,如果想使用自己的配置替换默认值,可以用application.properties或者application.yml(application.yaml)进行配置。其中application.properties是键值对类型的文件。
如果properties和yml同时配置了port,会优先选properties的配置。

2.yml配置文件

yml文件格式是yaml编写的文件格式。yaml是一种直观的能被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持yaml库的不同编程语言程序导入,比如:C/C++,python,PHP,C#等。yml文件是以数据为核心的,比传统xml方式更加简洁。

3.通过@Value映射数据

文件:application.properties

#服务器端口号
server.port=8080
#当前web应用的名称
server.servlet.context-path=/demo

文件:application.yml

#普通数据的配置
name: zhangsan

#对象的配置
person:
  name: zhangsan
  age: 18
  addr: beijing

#行内对象配置
#person: {name: zhangsan,age: 18,addr: beijing}

#yml和properties同时定义port时,优先选properties里的。
server:
  port: 8081

#配置数组、集合(普通字符串)
city:
  - beijing
  - tianjin
  - shanghai

#city: [beijing,tianjin,shanghai]

#配置数组、集合(对象数据)
student:
  - name: tom
    age: 18
    addr: beijing

  - name: lucy
    age: 17
    addr: tianjin

#student: [{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjin}]

#Map配置
map:
  key1: value1
  key2: value2
@RestController
public class QuickController2 {

    @Value("${name}")
    private String name;

    @Value("${person.addr}")
    private String addr;

    @RequestMapping("/quick2")
    public String quick2() {

        System.out.println(name);
        //获得配置文件的信息
        return "name=" + name + ",addr=" + addr;
    }
}

文件:pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--所有的springboot工程都必须继承起步依赖spring-boot-starter-parent-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <groupId>com.tiheima</groupId>
    <artifactId>springboot_quick</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖-->
    <dependencies>
        <!--web功能的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--热部署(修改后不重启就能生效)-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <!--@ConfigurationProperties的执行器的配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

</project>

运行:localhost:8080/demo/quick2

4.通过@ConfigurationProperties映射数据

@RestController
@ConfigurationProperties(prefix = "person")
public class QuickController3 {

    private String name;
    private String addr;

    @RequestMapping("/quick3")
    public String quick2() {

        System.out.println(name);
        //获得配置文件的信息
        return "name=" + name + ",addr=" + addr;
    }

    public String getName() {
        return name;
    }

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

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
}

运行:localhost:8080/demo/quick3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值