当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot中使用@Value()注入字段值?

祁远
2023-03-14

所以我有一些定制的POJO。每当我通过空构造函数实例化该对象时,我都希望将它的filed fee初始化为来自< code > application . properties 的某个预设值。

在我的application-prod.properties中:

fee=1500

我的POJO类:

public class PenaltyWithNoInvoiceDto {
    
    private int penatltyId; 
    private int number; 
    private String projectName;
    
    @Value("${fee}")
    private float fee;
    
    public PenaltyWithNoInvoiceDto() {
        
    }
    
    public PenaltyWithNoInvoiceDto(int penatltyId, int number, String projectName) {
        super();
        this.penatltyId = penatltyId;
        this.number = number;
        this.projectName = projectName;
    }
}

在我的@Service类中,我使用空构造函数实例化了 PenaltyWithNoInvoiceDto。但是当我打印费用字段时,我得到零。

如何使该字段的值为1500,我从< code > application-prod . properties 中获得该值?

共有1个答案

养振濂
2023-03-14

< code>@Value注释将仅在Spring管理bean的生命周期时应用——例如,当bean用< code>@Component 、< code>@Service等进行注释或由< code>@Configuration类的< code>@Bean方法实例化时。当您在自己的代码中执行< code > new PenaltyWithNoInvoiceDto()时,它不会被应用。

您可以将值(“${fee}”)添加到@服务类的一个字段中,然后在实例化时将其传递给DTO,例如new penaltywhithnoinvoicedto(fee)

 类似资料:
  • 本文向大家介绍Springboot中@Value的使用详解,包括了Springboot中@Value的使用详解的使用技巧和注意事项,需要的朋友参考一下 Springboot通过@Value注解将配置文件中的属性注入到容器内组件中(可用在@Controller、@Service、@Configuration、@Component等Spring托管的类中)  1.普通字符串注入 例:yml中存在key

  • 本文向大家介绍在springboot中使用注解将值注入参数的操作,包括了在springboot中使用注解将值注入参数的操作的使用技巧和注意事项,需要的朋友参考一下 后端的许多管理系统需要登陆者的信息,如shiro登陆后,会将登陆者的信息存储在shiro的session,在使用时需要多行代码获取用户信息。可以把获取在shiro中的登陆者信息封装在一个类中,使用时获取。本文主要讲述如何使用注解将值注入

  • 问题内容: 如何在Spring中使用@Value批注将值从属性文件注入Map中? 我的Spring Java类是我尝试使用$,但收到以下错误消息 无法自动装配字段:私有 嵌套异常是:无法解析字符串值中的占位符 我在.properties文件中具有以下属性 问题答案: 我相信Spring Boot支持使用注释开箱即用地加载属性映射。 根据该文档,你可以加载属性: 像这样变成豆子: 我之前使用过@Co

  • 我们使用的是Spring Boot2。 我们想使用Spring Boot的刷新机制,但是由于一个bug我们不能使用,因此我们不得不用和替换所有这些。 所以我们用了: 例如,使用该YAML文件: null 但是我们不能使用其他类型的属性绑定,因为我们正在将这个应用程序部署到kubernetes中,并使用kubernetes的配置映射。 所以我们想知道,是否还有其他机会让与一起工作

  • 我正在尝试为一个类编写测试,该类具有从属性文件注入的字段值。我试图在运行TestNG测试时利用注释获取其中的值,但它似乎忽略了我的属性文件。 有几十个类似的问题,我试着仔细阅读,并尽可能尝试它们的实现。但我的问题似乎略有不同,原因如下: > @TestProperty tSource和@Property tySource不适用于JUnit:谈论JUnit而不是TestNG(可能相关,也可能不相关?