【发布时间】:2018-10-26 00:51:51
【问题描述】:
假设我只想要一个 ObjectMapper 对象的普通实例。将其声明为 bean 有什么好处吗?
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper();
}
为什么不每次我们需要时都通过new ObjectMapper() 创建一个新的ObjectMapper?
还是声明为静态对象?
private static final ObjectMapper mapper = new ObjectMapper();
【问题讨论】:
-
当您使用
Bean声明对象时,spring 将负责管理其生命周期和范围。 -
ObjectMapper是线程安全的,可以重复使用,具体取决于对象创建可能需要很长时间,然后重复使用现有实例可能更可取(当它是线程安全的时候)。此外,您可能不想自己控制对象的生命周期,而是让 Spring 为您处理。
标签: java json oop static jackson