以反应方式使用 SpEl

Using SpEl in reactive manner

我正在使用响应式编程开发 Spring 启动应用程序。我需要在该应用程序中应用 Spring 表达式语言相关逻辑。我将主要使用 this link.

中提到的与表达式解析器相关的方法

由于我的应用程序是响应式的,是否可以将 SpEl 相关代码放入如下图所示的地图中,

return Mono.just(Person("name", "age:12"))
    .map { person ->
        // SpEl expression parser related logics here
    });

或者我是否需要使用像这样的方法在单独的线程中执行 SpEl 相关逻辑

Mono blockingWrapper = Mono.fromCallable(() -> { 
    return /* SpEl expression parser related logics here */ 
});
blockingWrapper = blockingWrapper.subscribeOn(Schedulers.boundedElastic());

实际解析的代码放在map中的代码中是可以的,但是建议在调用它的Bean中实例化Evaluation Context并使用lambda方法的Closure概念传递。

这是因为 SpEL 进行了优化,如果每次都实例化它将会丢失。