| Package | Description |
|---|---|
| com.fasterxml.jackson.databind.deser |
Contains implementation classes of deserialization part of
data binding.
|
| com.fasterxml.jackson.databind.introspect |
Functionality needed for Bean introspection, required for detecting
accessors and mutators for Beans, as well as locating and handling
method annotations.
|
| com.fasterxml.jackson.databind.type |
Package that contains concrete implementations of
JavaType, as
well as the factory (TypeFactory) for
constructing instances from various input data types
(like Class, Type)
and programmatically (for structured types, arrays,
Lists and Maps). |
| com.fasterxml.jackson.databind.util |
Utility classes for Mapper package.
|
| Modifier and Type | Field and Description |
|---|---|
protected LRUMap<JavaType,JsonDeserializer<java.lang.Object>> |
DeserializerCache._cachedDeserializers
We will also cache some dynamically constructed deserializers;
specifically, ones that are expensive to construct.
|
| Modifier and Type | Field and Description |
|---|---|
protected LRUMap<java.lang.Class<?>,java.lang.Boolean> |
JacksonAnnotationIntrospector._annotationsInside
Since introspection of annotation types is a performance issue in some
use cases (rare, but do exist), let's try a simple cache to reduce
need for actual meta-annotation introspection.
|
protected LRUMap<JavaType,BasicBeanDescription> |
BasicClassIntrospector._cachedFCA
Looks like 'forClassAnnotations()' gets called so frequently that we
should consider caching to avoid some of the lookups.
|
| Modifier and Type | Field and Description |
|---|---|
protected LRUMap<java.lang.Object,JavaType> |
TypeFactory._typeCache
Since type resolution can be expensive (specifically when resolving
actual generic types), we will use small cache to avoid repetitive
resolution of core types
|
| Modifier and Type | Method and Description |
|---|---|
TypeFactory |
TypeFactory.withCache(LRUMap<java.lang.Object,JavaType> cache)
Mutant factory method that will construct new
TypeFactory with
identical settings except for different cache; most likely one with
bigger maximum size. |
| Constructor and Description |
|---|
TypeFactory(LRUMap<java.lang.Object,JavaType> typeCache) |
TypeFactory(LRUMap<java.lang.Object,JavaType> typeCache,
TypeParser p,
TypeModifier[] mods,
java.lang.ClassLoader classLoader) |
| Modifier and Type | Field and Description |
|---|---|
protected LRUMap<ClassKey,PropertyName> |
RootNameLookup._rootNames
For efficient operation, let's try to minimize number of times we
need to introspect root element name to use.
|