以反应方式使用 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 进行了优化,如果每次都实例化它将会丢失。
我正在使用响应式编程开发 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 进行了优化,如果每次都实例化它将会丢失。