将EmbeddedValueResolver与@Conditional

时间:2017-11-30 18:05:08

标签: java spring spring-boot

问题上下文:在我们的应用程序中,我们使用自定义PropertySourcesPlaceholderConfigurer来扩展EmbeddedValueResolver与自定义属性源的可能性。我对Spring Boot @ConditionalOnProperty@ConditionalOnExpression非常感兴趣,并希望将它与自定义占位符一起使用。

我想要做的是编写自定义@Conditional注释,使用EmbeddedValueResolver来解析占位符(${...})。我注意到ConfigurationClassPostProcessor实现了ResourceLoaderAware接口,而ResourceLoaderAware类的配置晚于EmbeddedValueResolverAware。因此,当我们初始化ResourceLoaderAware时,我们的EmbeddedValueResolverAware bean已经配置好了。所以潜在的解决方案似乎成

我接下来要做的是编写自定义Condition,使用EmbeddedValueResolver中的ApplicationContext来解析某些属性并将其与某个值匹配。但问题是Condition使用另一个名为ConditionContext的上下文类,它不包含EmbeddedValueResolver。使用Environment#resolvePlaceholder没有帮助 - 似乎Environment对通过EmbeddedValueResolver提供的占位符一无所知。

那么,是否可以将EmbeddedValueResolver用于Spring条件?

0 个答案:

没有答案
相关问题