Springboot属性获取的几种方式

具体来说就是从配置文件中赋值给属性,从而得到对应值,接下来我将介绍几种方法

一、首先是本文要用到的具体文件结构以及对应代码(如果只是想看方法的话可以直接跳过这部分)

主体结构

相应的文件及对应代码

pom.xml需要导入springboot依赖,主要代码如下

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.3</version>
    <relativePath/>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
<-- 打印日志用-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.2</version>
    </dependency>
  </dependencies>

 本次需要用到的bean

以及测试用的代码

二、注入的方式

配置好相应的环境后就可以进行属性的配置了

1.@Value注解

具体使用方式为

@Component的加入是为了实例化这个bean

而@Vakue("${name}")是为了在赋值

name是对应的属性值要保持一致

测试结果为

2.@ConfigurationProperties注解

具体使用方式为

 @ConfigurationProperties(prefix = "test")以及配置文件的绑定

test是可以随便改写的,不过在引用时属性名要写对

结果为

3.实现EnvironmentAware接口

代买为

package com.caicode.bean;

import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class TestUser implements EnvironmentAware {

    Environment environment;
    private String name;
    public String getName() {

        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "TestUser{" +
                "name='" + name + '\'' +
                '}';
    }
    //这个方法会在spring容器实例化这个当前bean的时候回调
    //会传入一个Environment
    @Override
    public void setEnvironment(Environment environment) {
        this.environment = environment;
        this.name = environment.getProperty("name");
    }
}

 结果为

也可以用这种方式

package com.caicode.bean;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class TestUser {

    @Autowired
    Environment environment;
    private String name;
    public String getName() {
        this.name = environment.getProperty("name");
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "TestUser{" +
                "name='" + name + '\'' +
                '}';
    }
}

这样也是可以的 

4.@PropertySource注解

具体使用

可以指定其他的文件去给属性赋值,(文件名随便写)

比如本次用到的文件(少了一个s所以并不是一个默认的配置文件)

结果也是有的

以上就是本次介绍的四个方法,本次文章到此结束,感谢大家的观看。

Spring Boot 中,可以通过在 `application.yaml` 或 `application.properties` 文件中定义属性获取属性值。以下是几种获取属性值的方法: 1. 使用 `@Value` 注解:可以通过 `@Value("${property.key}")` 注解来注入属性值,其中 `property.key` 是在配置文件中定义的属性键。 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class MyComponent { @Value("${my.property}") private String myProperty; // getter and setter } ``` 2. 使用 `@ConfigurationProperties` 注解:可以通过 `@ConfigurationProperties(prefix = "prefix")` 注解将属性值绑定到一个类上,其中 `prefix` 是在配置文件中定义的属性前缀。 ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "my") public class MyProperties { private String property; // getter and setter } ``` 3. 使用 `Environment` 对象:可以通过注入 `Environment` 对象来获取属性值。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @Component public class MyComponent { @Autowired private Environment env; public void someMethod() { String property = env.getProperty("my.property"); // 使用属性值... } } ``` 这些方法都可以用来获取在配置文件中定义的属性值。注意,如果使用 `@Value` 或 `@ConfigurationProperties` 注解,需要确保在配置文件中正确配置了对应的属性键和属性值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值