Java 可以从spring应用程序属性获取自定义对象吗?

Java 可以从spring应用程序属性获取自定义对象吗?,java,spring,spring-boot,Java,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: som

是否可以从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}"
这可能吗?如果是的话,怎么做?我完全没有主意了:(


提前感谢;)

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

@ConfigurationProperties(prefix=“plans.eur”)
@组件
将放置在
当前计划
@EnableConfigurationProperties
最好放在
@Configuration
类上


在您可以将
CurrencyPlan
类自动关联到依赖类之后。

如果您将
application.yaml
重命名为
application.yml
,会怎么样?只是一个猜测,因为提到了
.yml
扩展。对不起,它是application.yml,我在创建问题时输入了一个错误,但是有没有办法将它作为一个普通对象而不是一个组件插入?在我看来,把这样的类作为组件似乎很奇怪,你是说不是由spring管理的?不可以。如果您阅读文档中关于
@EnableConfigurationProperties
注释的部分,您可以删除组件方面,但要做到这一点,它将始终是一个spring管理的bean。好的,我对它进行了更多的思考,这个解决方案正是我想要的,谢谢:)