Java 可以从spring应用程序属性获取自定义对象吗?
是否可以从application.yaml获取自己的对象,并用@Value将其绑定到我的组件 型号: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
@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。好的,我对它进行了更多的思考,这个解决方案正是我想要的,谢谢:)