最近在做一个新的项目,所有的东西,从框架开始,都是一点点搞起来的,很多基础设施不完善,在controller层返回对象包含有null的字段就属于其中的一种.
倘若返回的对象中不能过自动过滤掉null的属性,不仅是对流量的一种消耗,也给前段使用时带来麻烦,乱糟糟的,一点不简洁.
在开发中为了解决这种问题,主要采用了两种解决方案,
第一,使用注解
第二,使用全局的xml配置方式
这里注解比较简单,直接在你的vo上面添加注解就可以了
下面主要贴出来使用xml的配置方式实现:
以下是部分配置文件:
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
所需要的依赖为:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.3</version> </dependency>
这里我使用的是2.7.3版本的依赖,可以根据项目需求,自行定义版本,但是需要注意,不要有版本冲突就好了