我有一个序列化spring管理bean的问题。spring序列化自动编写的字段
我想返回自动连接bean作为一个restcontroller的响应。我读过几个回复,其中一个建议使用simpleFilter。(Use SimpleFilter to exclude non required fields.)。不过,我不认为这个建议是很实际的,而且我相信有更简单更具体的解决问题的方法。
我有一个春天的托管bean称为JobStatus。
@Component
@Scope(value="Prototype")
public class JobStatus{
private Integer job_type;
public Integer getJob_type() {
return job_type;
}
public void setJob_type(Integer job_type) {
this.job_type = job_type;
}
public JobStatus(){
}
}
我有一个控制器如下:
@RestController
public class JobController {
@Autowired
JobStatus js;
@RequestMapping(value = "/get_job_status", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
JobStatus get_job_status(@RequestBody JobStatusRequest req) {
js.setJobType(req.getJobType);
ObjectMapper mapper = new ObjectMapper();
try {
System.out.println(mapper.writeValueAsString(js));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return js;
}
}
它抛出以下异常:
com.fasterxml.jackson.databind.JsonMappingException:没有串行发现类org.springframework。 cglib.proxy.NoOp $ 1和没有属性发现(以避免异常,禁用SerializationFeature.FAIL_ON_EMPTY_BEANS))(通过引用链来创建BeanSerializer:ATM.Job.JobStatus $$ EnhancerBySpringCGLIB $$ be675215 [ “回调”])
我已经尝试将JobStatus的范围更改为“单例”和“会话”和“请求”,它没有任何区别。 我们应该如何序列化“代理”?
,可以用[塞尔玛](http://www.selma-java.org/)或[推土机](http://dozer.sourceforge.net/documentation/usage.html)来自动化之间的映射数据和查看pojo – Quentin
这不回答我的问题。您只需创建另一个不受Spring管理的类即可绕过它。我的问题是关于自动布线bean的序列化。谢谢。 – user2076066