java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot给属性赋值

SpringBoot实现给属性赋值的两种方式

作者:Xwzzz_

在Spring Boot中,配置文件是用来设置应用程序的各种参数和操作模式的重要部分,Spring Boot支持两种主要类型的配置文件:properties文件和YAML 文件,这两种文件都可以用来定义相同的配置,接下来由小编给大家详细的介绍一下这两种方式

一,介绍

在Spring Boot中,配置文件是用来设置应用程序的各种参数和操作模式的重要部分。Spring Boot支持两种主要类型的配置文件:properties文件和YAML 文件。这两种文件都可以用来定义相同的配置,但它们在格式和表达能力上有所不同。

二,Properties 配置方式

properties文件是Java平台最传统的配置方式,文件扩展名为 .properties。这种格式非常简单,主要由键值对组成,每一对键值对设置一个配置属性。

示例:

定义模型Person类:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix="person")
public class Person {
    private String name;
    private int age;
    private String uuid;
    private Dog dog;
 
    // standard getters and setters
 
    public static class Dog {
        private String name;
        private String breed;
 
        // standard getters and setters
    }
}

Properties 配置

person.name=John Doe
person.age=35
person.uuid=${random.uuid}
person.dog.name=Rex
person.dog.breed=Labrador

这样配置后,Spring Boot 会自动application.properties中的相关配置注入到 Person对象和其内部的 Dog对象。

使用 @Value注解也可以直接在 Spring Boot 应用中注入配置值,例

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
 
@Component
public class Person {
    @Value("${person.name}")
    private String name;
 
    @Value("${person.age}")
    private int age;
 
    @Value("${person.uuid}")
    private String uuid;
 
    // 内部类和其他配置略
}

三,YAML 配置方式

YAML 是一种层次结构化的数据格式,相比于 properties文件,它支持列表和嵌套的对象,使得配置更加清晰和组织化。

yaml配置:

person:
  name: "John Doe"
  age: 35
  uuid: ${random.uuid}
  dog:
    name: "Rex"
    breed: "Labrador"

这时要将YAML文件中的配置自动映射到一个Java类中,需要在Spring Boot应用中定义相应的配置类,并使用@ConfigurationProperties注解。

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
@Configuration
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private int age;
    private String uuid;
    private Dog dog;
 
 
    @Component
    public static class Dog {
        private String name;
        private String breed;
 
        // getters and setters
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public String getBreed() {
            return breed;
        }
 
        public void setBreed(String breed) {
            this.breed = breed;
        }
    }
}

四,对比

1. 可读性

2. 表达能力

3. 错误检测

4. 使用场景

以上就是SpringBoot实现给属性赋值的两种方式的详细内容,更多关于SpringBoot给属性赋值的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文