org.macrocloud.kernel.toolkit.config.MessageConfiguration Maven / Gradle / Ivy
package org.macrocloud.kernel.toolkit.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import org.macrocloud.kernel.toolkit.jackson.BaseJacksonProperties;
import org.macrocloud.kernel.toolkit.jackson.MappingApiJackson2HttpMessageConverter;
import org.macrocloud.kernel.toolkit.utils.DateUtil;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.http.converter.*;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
* 消息配置类.
*/
@Configuration(proxyBeanMethods = false)
/**
* Instantiates a new message configuration.
*
* @param objectMapper the object mapper
* @param properties the properties
*/
@AllArgsConstructor
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MessageConfiguration implements WebMvcConfigurer {
/** The object mapper. */
private final ObjectMapper objectMapper;
/** The properties. */
private final BaseJacksonProperties properties;
/**
* 使用 JACKSON 作为JSON MessageConverter
* 消息转换,内置断点续传,下载和字符串.
*
* @param converters the converters
*/
@Override
public void configureMessageConverters(List> converters) {
converters.removeIf(x -> x instanceof StringHttpMessageConverter || x instanceof AbstractJackson2HttpMessageConverter);
converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new ResourceHttpMessageConverter());
converters.add(new ResourceRegionHttpMessageConverter());
converters.add(new MappingApiJackson2HttpMessageConverter(objectMapper, properties));
}
/**
* 日期格式化.
*
* @param registry the registry
*/
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new DateFormatter(DateUtil.PATTERN_DATE));
registry.addFormatter(new DateFormatter(DateUtil.PATTERN_DATETIME));
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy