我需要定期调用REST,每次都使用相同的参数,从应用程序属性中提取。为了避免每次都创建请求对象,我想使用配置Bean作为请求主体,它将被序列化为JSON。
配置bean如下所示:
@ConfigurationProperties(prefix = "myprefix")
@Configuration("configname")
@Getter
@Setter
public class ConfigDetails {
private String c1;
private String c2;
private String c3;
}
我将这个bean注入到调用带有@Autowired
注解的REST API的类中。在进行REST调用时,在序列化期间,我得到以下错误:
No serializer found for class org.springframework.context.expression.StandardBeanExpressionResolver and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ril.scm.node.data.PromiseEngineLoginDetails$$EnhancerBySpringCGLIB$$cad0a6e6["$$beanFactory"]->org.springframework.beans.factory.support.DefaultListableBeanFactory["beanExpressionResolver"])
我正在使用WebClient进行如下调用:
webClient.post().body(Mono.just(configDetails), ConfigDetails.class)....
1条答案
按热度按时间wa7juj8i1#
作为一种解决方法,我尝试在类内部创建配置Bean的静态非bean副本,复制字段值并使用该静态示例。
这起作用了,但我不确定这是否可以被认为是一个解决方案或只是一个黑客!我可以看到的缺点是,有时需要添加属性时,有人可能会忘记编辑
init()
方法。