SpringBoot中使用属性文件(yml、properties)

在Spring Boot中使用属性文件,可以采用其默认的application.properties和application.yml配置文件,也可以使用自定义的配置文件。

属性文件依赖

如果使用的是yml文件进行配置,则会自动对配置字段进行自动提示。如果使用的使用的是properties文件进行配置,则需要引入以下依赖才能进行自动提示(即使不引入这个依赖,配置字段也会生效,只是不方便快捷书写配置)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <!--下面一行设置为true说明这个依赖是可选的,且不进行依赖传递,不设置则默认为false,为必须依赖 -->
    <optional>true</optional>
</dependency>
使用属性配置
  1. 我们可以通过@Value注解,使用${…}这样的占位符读取配置在属性文件的内容。假如我们自定义了一个字段"my.value=123"在properties文件中,那么获取属性的示范代码如下:
public class ValueTest {
    @Value("${my.value}")
    private String valueTest;
    public void test01(){
        System.out.println(valueTest);
    }
}

执行代码的话控制台将会输出:123
2. 还可以使用@ConfigurationProperties注解进行获取,代码示范如下:

@ConfigurationProperties("my")
public class ValueTest {
    private String value;
    public void test01(){
        System.out.println(value);
    }

同样可以拿到值,注意这里“my”和属性名组合后要完全匹配配置文件里的全限定名。使用这个注解可以方便获取大量的属性值,唯一注意的就是要使用对应的属性名称。

载入自定义的配置文件

1.使用@PropertySource注解来载入非默认的properties配置文件

@propertySource(value={"classpath:haha.properties"}, ignoreResourceNotFound=true)
public class ValueTest {
    @Value("${my.value}")
    private String valueTest;
    public void test01(){
        System.out.println(valueTest);
    }
}
  1. 第一种方法是不支持yml配置文件载入的,但是如果我们要载入非自定义的yml配置文件的话,需要在application.yml配置文件中这样写:
spring:
    profiles:
        active: dev, test

如上配置,我们可以载入名为application-dev.yml和application-test.yml的配置文件,注意文件名要加上“application-”的前缀。通过这个注解我们可以方便切换配置文件从而达到切换测试、开发、生产等环境的目的。也可以将多个环境配置写在同一个配置文件中,如:

# 激活 prod 
spring: 
    profiles: 
        active: prod 
spring:
    profiles: dev 
    # 略去配置 
spring:
    profiles: test 
    # 略去配置
spring:
    profiles: prod 
    # 略去配置

我们也可以使用@Profile(“dev”)指定类或方法在特定的Profile环境生效。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot应用程序,可以使用 `application.yml` 或 `application.properties` 文件配置应用程序属性。如果您正在使用 `application.yml` 文件,您可以使用 `@PropertySource` 注释和 `@ConfigurationProperties` 注释来从 `application.yml` 文件加载属性。 以下是将 `application.yml` 文件属性加载到 Spring Boot 应用程序的示例: 1. 在 `application.yml` 文件设置您的属性: ``` myproperty: name: "my name" age: 25 ``` 2. 创建一个类来保存您的属性: ``` @Component @ConfigurationProperties(prefix = "myproperty") public class MyProperty { private String name; private int age; // getters and setters } ``` 3. 在您的应用程序使用 MyProperty 类: ``` @RestController public class MyController { @Autowired private MyProperty myProperty; @GetMapping("/myproperty") public String getMyProperty() { return "Name: " + myProperty.getName() + ", Age: " + myProperty.getAge(); } } ``` 在上面的示例,`@ConfigurationProperties` 注释设置了属性的前缀,因此 Spring Boot 将自动从 `application.yml` 文件加载属性。在 `MyController` ,我们将 `MyProperty` 类注入并使用属性。 注意事项:如果您使用的是 `application.properties` 文件,则需要将 `@PropertySource` 注释添加到您的类,并指定属性文件的位置。例如: ``` @Component @PropertySource("classpath:myproperties.properties") @ConfigurationProperties(prefix = "myproperty") public class MyProperty { // ... } ``` 其,`classpath:myproperties.properties` 是 `application.properties` 文件的位置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值