Java 类com.fasterxml.jackson.databind.ser.SerializerCache 实例源码
项目:QuizUpWinner
文件:SerializerProvider.java
public SerializerProvider()
{
this._config = null;
this._serializerFactory = null;
this._serializerCache = new SerializerCache();
this._knownSerializers = null;
this._rootNames = new RootNameLookup();
this._serializationView = null;
}
项目:cevent-app
文件:JacksonReloader.java
private void invalidateJacksonCaches() {
try {
ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
Collection<ObjectMapper> mappers = BeanFactoryUtils
.beansOfTypeIncludingAncestors(beanFactory, ObjectMapper.class)
.values();
for (ObjectMapper mapper : mappers) {
log.trace("Flushing Jackson serializer cache");
SerializerProvider serializerProvider = mapper.getSerializerProvider();
Field serializerCacheField = serializerProvider.getClass().getSuperclass().getSuperclass().getDeclaredField("_serializerCache");
ReflectionUtils.makeAccessible(serializerCacheField);
SerializerCache serializerCache = (SerializerCache) serializerCacheField.get(serializerProvider);
Method serializerCacheFlushMethod = SerializerCache.class.getDeclaredMethod("flush");
serializerCacheFlushMethod.invoke(serializerCache);
log.trace("Flushing Jackson deserializer cache");
DeserializationContext deserializationContext = mapper.getDeserializationContext();
Field deSerializerCacheField = deserializationContext.getClass().getSuperclass().getSuperclass().getDeclaredField("_cache");
ReflectionUtils.makeAccessible(deSerializerCacheField);
DeserializerCache deSerializerCache = (DeserializerCache) deSerializerCacheField.get(deserializationContext);
Method deSerializerCacheFlushMethod = DeserializerCache.class.getDeclaredMethod("flushCachedDeserializers");
deSerializerCacheFlushMethod.invoke(deSerializerCache);
}
} catch (Exception e) {
log.warn("Could not hot reload Jackson class!");
e.printStackTrace();
}
}
项目:parkingfriends
文件:JacksonReloader.java
public void reloadEvent() {
log.debug("Hot reloading Jackson classes");
try {
ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
Collection<ObjectMapper> mappers = BeanFactoryUtils
.beansOfTypeIncludingAncestors(beanFactory, ObjectMapper.class)
.values();
for (ObjectMapper mapper : mappers) {
log.trace("Flushing Jackson serializer cache");
SerializerProvider serializerProvider = mapper.getSerializerProvider();
Field serializerCacheField = serializerProvider.getClass().getSuperclass().getSuperclass().getDeclaredField("_serializerCache");
ReflectionUtils.makeAccessible(serializerCacheField);
SerializerCache serializerCache = (SerializerCache) serializerCacheField.get(serializerProvider);
Method serializerCacheFlushMethod = SerializerCache.class.getDeclaredMethod("flush");
serializerCacheFlushMethod.invoke(serializerCache);
log.trace("Flushing Jackson deserializer cache");
DeserializationContext deserializationContext = mapper.getDeserializationContext();
Field deSerializerCacheField = deserializationContext.getClass().getSuperclass().getSuperclass().getDeclaredField("_cache");
ReflectionUtils.makeAccessible(deSerializerCacheField);
DeserializerCache deSerializerCache = (DeserializerCache) deSerializerCacheField.get(deserializationContext);
Method deSerializerCacheFlushMethod = DeserializerCache.class.getDeclaredMethod("flushCachedDeserializers");
deSerializerCacheFlushMethod.invoke(deSerializerCache);
}
} catch (Exception e) {
log.warn("Could not hot reload Jackson class!");
e.printStackTrace();
}
}