public class SpringObjenesis
extends java.lang.Object
ObjenesisStd
/ ObjenesisBase
,
providing a cache based on Class
keys instead of class names,
and allowing for selective use of the cache.isWorthTrying()
,
newInstance(Class, boolean)
Modifier and Type | Field and Description |
---|---|
private ConcurrentReferenceHashMap<java.lang.Class<?>,<any>> |
cache |
static java.lang.String |
IGNORE_OBJENESIS_PROPERTY_NAME
System property that instructs Spring to ignore Objenesis, not even attempting
to use it.
|
private InstantiatorStrategy |
strategy |
private java.lang.Boolean |
worthTrying |
Constructor and Description |
---|
SpringObjenesis()
Create a new
SpringObjenesis instance with the
standard instantiator strategy. |
SpringObjenesis(InstantiatorStrategy strategy)
Create a new
SpringObjenesis instance with the
given standard instantiator strategy. |
Modifier and Type | Method and Description |
---|---|
<T> <any> |
getInstantiatorOf(java.lang.Class<T> clazz) |
boolean |
isWorthTrying()
Return whether this Objenesis instance is worth trying for instance creation,
i.e.
|
<T> T |
newInstance(java.lang.Class<T> clazz) |
<T> T |
newInstance(java.lang.Class<T> clazz,
boolean useCache)
Create a new instance of the given class via Objenesis.
|
protected <T> <any> |
newInstantiatorOf(java.lang.Class<T> clazz) |
public static final java.lang.String IGNORE_OBJENESIS_PROPERTY_NAME
private final InstantiatorStrategy strategy
private final ConcurrentReferenceHashMap<java.lang.Class<?>,<any>> cache
private volatile java.lang.Boolean worthTrying
public SpringObjenesis()
SpringObjenesis
instance with the
standard instantiator strategy.public SpringObjenesis(InstantiatorStrategy strategy)
SpringObjenesis
instance with the
given standard instantiator strategy.strategy
- the instantiator strategy to usepublic boolean isWorthTrying()
If the configured Objenesis instantiator strategy has been identified to not
work on the current JVM at all or if the "spring.objenesis.ignore" property has
been set to "true", this method returns false
.
public <T> T newInstance(java.lang.Class<T> clazz, boolean useCache)
clazz
- the class to create an instance ofuseCache
- whether to use the instantiator cache
(typically true
but can be set to false
e.g. for reloadable classes)null
)ObjenesisException
- if instance creation failedpublic <T> T newInstance(java.lang.Class<T> clazz)
public <T> <any> getInstantiatorOf(java.lang.Class<T> clazz)
protected <T> <any> newInstantiatorOf(java.lang.Class<T> clazz)