spring - 使用 Spring 内部 Spel 表达式解析器

标签 spring spring-el

您知道如何使用 Spring 内部 Spel Expression Parser 来解析包含 Spring Application Context 的 bean 引用的字符串吗?

我已经看到 SpelExpressionParser 可以与定义一些显式用户变量的 StandardEvaluationContext 一起使用。

我正在寻找一种直接使用 Spring 内部 Spel Expression Parser 绑定(bind)到整个 Spring Application Context 的解决方案。这个想法是使用与@Value SPEL 注释具有相同功能的字符串模板。

最佳答案

您可以使用 EmbeddedValueResolver实现与 @Value 相同的功能注释:

// can be autowired or fetched from ConfigurableApplicationContext.getBeanFactory()
ConfigurableBeanFactory configurableBeanFactory; 

EmbeddedValueResolver embeddedValueResolver = new EmbeddedValueResolver(configurableBeanFactory);
System.out.println(embeddedValueResolver.resolveStringValue("${someProperty}");
System.out.println(embeddedValueResolver.resolveStringValue("#{@foo.calcValue(123)}");

关于spring - 使用 Spring 内部 Spel 表达式解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42533640/

相关文章:

Spring RestTemplate 收到 "401 Unauthorized"

java - 管理事务回滚

java - 将 RequestAttributes 传递给新线程后, session 丢失

spring - thymeleaf - 将选择变量表达式 *{foo} 传递给表达式实用程序对象

java - Spring 芯。默认@Bean 销毁方法

java - 非法参数异常 : Illegal base64 character 3a when decoding String value using Base64. getDecode()

java - 如何消除Spring Java中的类转换异常?

templates - 根据 thymeleaf 中的其他变量选择上下文变量属性(动态)

java - 查找 ArrayList 的大小,其中列表名称作为字符串传递

java - 使用 SpEL 复制 bean 的引用不起作用