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

从应用程序读取货币金额。ymlSpring护套

罗业
2023-03-14

financeAmt:
        value: 10000
        currency: EUR

我想使用java Money API(javax.Money)或其任何实现,例如org。javamoney。莫内塔。货币

但Spring boot无法加载其设置为null的@ConfigurationProperties的“financeAmt”。

它工作正常,如果我创建一个自定义类与淡水河谷和货币属性。

任何帮助如何在不创建自定义类和使用java Money api的情况下加载此货币值。


共有1个答案

郭德惠
2023-03-14
匿名用户

Spring Boot不知道如何将字符串转换为组织。javamoney。莫内塔。货币。如果不受格式限制,可以提供ConfigurationPropertiesBinding并使用如下配置设置:

financeAmt:
  value: EUR 10000
import org.javamoney.moneta.Money;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties("finance-amt")
public class FinanceAmtConfig {
    private Money value;

    public Money getValue() {
        return value;
    }

    public void setValue(Money value) {
        this.value = value;
    }
}

@Component
@ConfigurationPropertiesBinding
class MoneyConverter implements Converter<String, Money> {
    @Override
    public Money convert(String source) {
        // Needs some error handling....
        return Money.parse(source);
    }
}

或者,如果您绑定到配置格式,您可以只读取基本值,例如字符串和bigdecimic,然后显式构建Money实例。

 类似资料:
  • 我正在尝试实现以下CFC(coldfusion)代码: http://www.sitekickr.com/blog/integrating-paypal-payflow-pro-rest-api/ 我仍处于测试阶段,甚至没有尝试传递自己的变量,只是使用提供的CFSET示例。 我得到了这个错误: {“name”:“VALIDATION_ERROR”,“details”:[{“field”:“tran

  • 我得到了这个错误: {“name”:“validation_error”,“details”:[{“field”:“transactions[0].amount.total”,“issue”:“币种金额必须为非负数,可以选择精确包含小数点后2位,以”.“分隔,可选千位分隔符”,“,小数点前限7位”}],“message”:“请求无效-请参阅详细信息”,“information_link”:“htt

  • 本文向大家介绍java 使用BigDecimal进行货币金额计算的操作,包括了java 使用BigDecimal进行货币金额计算的操作的使用技巧和注意事项,需要的朋友参考一下 float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。 而且使用BigDecimal类也可以进行大数的操作。 方法 类型 描述 public BigDeci

  • 给定一美元金额,将其转换为欧元硬币和纸币。你得到了美元金额作为论据,并说美元对欧元的汇率是1.30。你可以看到欧元的名称是500美元,200美元,100美元,50美元,20美元,10美元,5美元,2美元,1美元,50美分,25美分,10美分,5美分,2美分,1美分。将该美元金额转换为最小金额的纸币和硬币。(将数字美元金额(如10.00美元)转换为等值的欧元纸币和硬币。) 免责声明:这是我收到的家庭

  • 我试过... 但那就不允许便士条目了。 我想要增量按钮控制在英镑上升,但仍然想要输入便士的能力。 谢谢,1DMF

  • 我们正在开发旅游网站,用于预订航班、酒店、汽车等。它是基于产品的软件。客户(购买我们的软件)将成为“主要代理”。他的交易总额将是INR(印度卢比货币)。所有航班、酒店或汽车预订仅以INR进行。 现在他有权创建他的“子机构”。子机构货币可以是美元或印度卢比等。这意味着“主要机构”可能在世界各地都有其子机构。现在,每当“子机构”登录时,他的交易报告都应该使用他的货币。如果其货币为“澳元”,则交易总额应