小编典典

是否可以从Spring应用程序属性获取自定义对象?

spring-boot

是否有可能从application.yaml获取自己的对象并将其与@Value绑定到我的组件?

模型:

@Data
public class CurrencyPlan {
    private String id;
    private String basePrice;
    private String merchantId;
}

application.yml:

plans:
  eur:
    id: id
    basePrice: 5
    merchantId: someid

我正在尝试做的是:

@Value("${plans.eur}") CurrencyPlan eurPlan

我得到的是:

java.lang.IllegalArgumentException: Could not resolve placeholder 'plans.eur' in value "${plans.eur}"

这有可能吗?如果是这样,该怎么做?我很没主意:(

提前致谢 ;)


阅读 299

收藏
2020-05-30

共1个答案

小编典典

如果您希望将属性绑定到类,则可以使用@ConfigurationProperties

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-
external-config.html#boot-features-external-config-typesafe-configuration-
properties

@ConfigurationProperties(prefix="plans.eur")并将
@Component放置在CurrencyPlan@EnableConfigurationProperties最好放在一个@Configuration班上。

之后,您可以将CurrencyPlan类自动连接到相关类。

2020-05-30