900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > springboot 利用configureMessageConverters add FastJsonHttpMessageConverter 实现返回JSON值 null to ...

springboot 利用configureMessageConverters add FastJsonHttpMessageConverter 实现返回JSON值 null to ...

时间:2019-07-26 19:48:11

相关推荐

springboot 利用configureMessageConverters   add FastJsonHttpMessageConverter  实现返回JSON值  null to ...

/*

*

* 文件名:@WebConfiguration.java <br/>

* @author tomas <br/>

import com.alibaba.fastjson.support.config.FastJsonConfig;

import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.boot.actuate.health.ApplicationHealthIndicator;

import org.springframework.boot.actuate.health.HealthIndicator;

import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

import org.springframework.context.EnvironmentAware;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.core.env.Environment;

import org.springframework.http.MediaType;

import org.springframework.http.converter.HttpMessageConverter;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.ArrayList;

import java.util.List;

import static com.alibaba.fastjson.serializer.SerializerFeature.*;

/**

* 类名:WebConfiguration <br />

*

* 功能:Web相关配置

*

* @author tomas <br />

* 创建时间:7月27日 下午3:57:19 <br />

* @version 7月27日*/

@Configuration

@EnableWebMvc

public class FrontConfiguration extends WebMvcConfigurerAdapter implements EnvironmentAware {

// 日志记录器

private static final Logger logger = LoggerFactory.getLogger(FrontConfiguration.class);

// 当前的环境对象

protected Environment environment;

@Override

public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

super.configureMessageConverters(converters);

//1.需要先定义一个 convert 转换消息的对象;

FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;

FastJsonConfig fastJsonConfig = new FastJsonConfig();

// 不忽略对象属性中的null值

fastJsonConfig.setSerializerFeatures(

PrettyFormat,

WriteNullListAsEmpty,

WriteNullStringAsEmpty);

//3、在convert中添加配置信息.

fastConverter.setFastJsonConfig(fastJsonConfig);

//4、将convert添加到converters当中.

converters.add(fastConverter);

}

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("favicon.ico")

.addResourceLocations("classpath:/static/favicon.ico");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");

}

/**

* Set the {@code Environment} that this object runs in.

*

* @param environment

*/

@Override

public void setEnvironment(Environment environment) {

this.environment = environment;

}

}

@Override

public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

super.configureMessageConverters(converters);

//1.需要先定义一个 convert 转换消息的对象;

FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

List<MediaType> supportedMediaTypes = new ArrayList<>();

supportedMediaTypes.add(MediaType.APPLICATION_JSON);

supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);

supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);

supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);

supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);

supportedMediaTypes.add(MediaType.APPLICATION_PDF);

supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);

supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);

supportedMediaTypes.add(MediaType.APPLICATION_XML);

supportedMediaTypes.add(MediaType.IMAGE_GIF);

supportedMediaTypes.add(MediaType.IMAGE_JPEG);

supportedMediaTypes.add(MediaType.IMAGE_PNG);

supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);

supportedMediaTypes.add(MediaType.TEXT_HTML);

supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);

supportedMediaTypes.add(MediaType.TEXT_PLAIN);

supportedMediaTypes.add(MediaType.TEXT_XML);

fastConverter.setSupportedMediaTypes(supportedMediaTypes);

//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;

FastJsonConfig fastJsonConfig = new FastJsonConfig();

// 不忽略对象属性中的null值

fastJsonConfig.setSerializerFeatures(

PrettyFormat,

WriteNullListAsEmpty,

WriteNullStringAsEmpty);

//3、在convert中添加配置信息.

fastConverter.setFastJsonConfig(fastJsonConfig);

//4、将convert添加到converters当中.

converters.add(fastConverter);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。