Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将EmbeddedValueResolver与@Conditional一起使用_Java_Spring_Spring Boot - Fatal编程技术网

Java 将EmbeddedValueResolver与@Conditional一起使用

Java 将EmbeddedValueResolver与@Conditional一起使用,java,spring,spring-boot,Java,Spring,Spring Boot,问题背景:在我们的应用程序中,我们使用自定义propertysourcesplaceconfigurer来扩展带有自定义属性源的EmbeddedValueResolver的可能性。我对Spring Boot的@ConditionalOnProperty和@ConditionalOnExpression非常感兴趣,希望将其与自定义占位符一起使用 我想做的是编写自定义的@Conditional注释,该注释使用EmbeddedValueResolver解析占位符(${…})。我注意到Configura

问题背景:在我们的应用程序中,我们使用自定义
propertysourcesplaceconfigurer
来扩展带有自定义属性源的
EmbeddedValueResolver
的可能性。我对Spring Boot的
@ConditionalOnProperty
@ConditionalOnExpression
非常感兴趣,希望将其与自定义占位符一起使用

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

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


那么,可以将
EmbeddedValueResolver
与Spring条件一起使用吗

您能提供一个具体的例子来说明您希望能够做什么吗?我希望能够使用占位符(可以通过
@Value
注释获得,比如
@Value(${auth.enabled}”)
)和条件,比如
@ConditionalOnValue(${auth.enabled}”,“true”)