Java 请求作用域bean无法在响应主体[Spring Boot]中使用
我有一个请求范围的(原型)bean作为Rest控制器的响应,并且得到异常,无法工作 我在属性文件上尝试了spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false,错误消息是“类型定义错误:[简单类型,类org.springframework.context.expression.StandardBeanExpressionResolver];嵌套异常为com.fasterxml.jackson.databind.exc.InvalidDefinitionException:找不到类org.springframework.context.expression.StandardBeanExpressionResolver的序列化程序,也找不到创建BeanSerializer的属性(为避免异常,请禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过参考链:com.epic.dcms.kyc.beans.MainResponse$$EnhancerBySpringCGLIB$$82085c99[\'targetSource\']->org.springframework.aop.target.SimpleBanTargetSource[\'beanFactory\']->org.springframework.beans.factory.support.DefaultListableBeanFactory[\'beanExpressionResolver\']) 不工作,然后出现循环依赖项并引发异常 @@scope注释更改的RequestScope注释也无法解决此问题 我注意到,只有当MainResponse用作响应时,才会出现此异常Java 请求作用域bean无法在响应主体[Spring Boot]中使用,java,spring-boot,requestscope,Java,Spring Boot,Requestscope,我有一个请求范围的(原型)bean作为Rest控制器的响应,并且得到异常,无法工作 我在属性文件上尝试了spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false,错误消息是“类型定义错误:[简单类型,类org.springframework.context.expression.StandardBeanExpressionResolver];嵌套异常为com.fasterxml.jackson.databind.exc.InvalidDefin
Bean
@RequestScope
@Component
public class MainResponse implements Serializable{
//fields and getters and setters
}
Controller class
@PostMapping("/uploadFile")
public MainResponse uploadFile(@RequestParam("file") MultipartFile file) throws FileStorageException {
String fileName = fileStorageService.storeFile(file);
response.putPayLoad(true,"fileName",fileName)
.putPayLoad("ContentType",file.getContentType())
.putPayLoad("size",file.getSize());
return response;
}
当我从MainResponse bean中删除@RequestScope时,它工作正常,知道如何解决这个问题吗???没有必要用“@RequestScope”标记响应类,数据绑定将由框架本身管理。为什么MainResponse是一个bean?它是请求范围(原型)bean,所以它是由框架管理的,任何建议都会受到高度赞赏。通常请求和响应对象不由Spring管理,因为它们没有生命周期。