Class ProtobufMessageConverter
- java.lang.Object
- org.springframework.messaging.converter.AbstractMessageConverter
- org.springframework.messaging.converter.ProtobufMessageConverter
- All Implemented Interfaces:
MessageConverter,SmartMessageConverter
- Direct Known Subclasses:
ProtobufJsonFormatMessageConverter
public class ProtobufMessageConverter extends AbstractMessageConverter
AnMessageConverterthat reads and writescom.google.protobuf.Messagesusing Google Protocol Buffers.To generate
MessageJava classes, you need to install theprotocbinary.This converter supports by default
"application/x-protobuf"with the official"com.google.protobuf:protobuf-java"library."application/json"can be supported with the official"com.google.protobuf:protobuf-java-util"3.x, with 3.3 or higher recommended.- Since:
- 5.2.2
- Author:
- Parviz Rozikov, Rossen Stoyanchev
Field Summary
Fields Modifier and Type Field Description static CharsetDEFAULT_CHARSETThe default charset used by the converter.static MimeTypePROTOBUFThe mime-type for protobufapplication/x-protobuf.Fields inherited from class org.springframework.messaging.converter.AbstractMessageConverter
logger
Constructor Summary
Constructors Constructor Description ProtobufMessageConverter()Constructor with a default instance ofExtensionRegistry.ProtobufMessageConverter(com.google.protobuf.ExtensionRegistry extensionRegistry)Constructor with a givenExtensionRegistry.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanConvertTo(Object payload, MessageHeaders headers)protected ObjectconvertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint)Convert the message payload from serialized form to an Object.protected ObjectconvertToInternal(Object payload, MessageHeaders headers, Object conversionHint)Convert the payload object to serialized form.protected booleansupports(Class<?> clazz)Whether the given class is supported by this converter.Methods inherited from class org.springframework.messaging.converter.AbstractMessageConverter
addSupportedMimeTypes, canConvertFrom, fromMessage, fromMessage, getContentTypeResolver, getDefaultContentType, getMimeType, getSerializedPayloadClass, getSupportedMimeTypes, isStrictContentTypeMatch, setContentTypeResolver, setSerializedPayloadClass, setStrictContentTypeMatch, supportsMimeType, toMessage, toMessage
Field Detail
DEFAULT_CHARSET
public static final Charset DEFAULT_CHARSET
The default charset used by the converter.
Constructor Detail
ProtobufMessageConverter
public ProtobufMessageConverter()
Constructor with a default instance ofExtensionRegistry.
ProtobufMessageConverter
public ProtobufMessageConverter(com.google.protobuf.ExtensionRegistry extensionRegistry)
Constructor with a givenExtensionRegistry.
Method Detail
supports
protected boolean supports(Class<?> clazz)
Description copied from class:AbstractMessageConverterWhether the given class is supported by this converter.- Specified by:
supportsin classAbstractMessageConverter- Parameters:
clazz- the class to test for support- Returns:
trueif supported;falseotherwise
canConvertTo
protected boolean canConvertTo(Object payload, @Nullable MessageHeaders headers)
- Overrides:
canConvertToin classAbstractMessageConverter
convertFromInternal
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint)
Description copied from class:AbstractMessageConverterConvert the message payload from serialized form to an Object.- Overrides:
convertFromInternalin classAbstractMessageConverter- Parameters:
message- the input messagetargetClass- the target class for the conversionconversionHint- an extra object passed to theMessageConverter, e.g. the associatedMethodParameter(may benull}- Returns:
- the result of the conversion, or
nullif the converter cannot perform the conversion
convertToInternal
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint)
Description copied from class:AbstractMessageConverterConvert the payload object to serialized form.- Overrides:
convertToInternalin classAbstractMessageConverter- Parameters:
payload- the Object to convertheaders- optional headers for the message (may benull)conversionHint- an extra object passed to theMessageConverter, e.g. the associatedMethodParameter(may benull}- Returns:
- the resulting payload for the message, or
nullif the converter cannot perform the conversion