Springmvc返回注解驱动&自定义扩展规则设置

来源:互联网 发布:飞机上座率查询软件 编辑:程序博客网 时间:2024/06/05 03:14

现象:
Springmvc返回注解驱动&自定义扩展规则设置

方法:Springmvc自带返回注解驱动

1:Springmvc自携带json转换驱动
这里写图片描述

2:使用mvc自携带注解@ResponseBody转换将自动将对象转换为json格式返回
这里写图片描述

代码:

<!-- Springmvc返回注解驱动 -->    <mvc:annotation-driven conversion-service="myConverter" validator="validator">        <mvc:message-converters>            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">                <property name="supportedMediaTypes">                    <list>                        <value>application/json</value>                        <value>text/html;charset=UTF-8</value>                    </list>                </property>                <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>

方法:自定义注解返回规则扩展设置

1:返回注解驱动设置自定义规则类
这里写图片描述

2:自建立类设置规则模型加入
这里写图片描述

3:新建立的规则模型(double保留两位小数)
这里写图片描述

4:4使用注解返回对象将按照自定义转会规则转换为json

代码:

<!-- mvc返回注解驱动 <mvc:annotation-driven conversion-service="myConverter" validator="validator" > -->    <mvc:annotation-driven validator="validator" >        <mvc:argument-resolvers>            <bean class="com.oig.argmentResolver.CurrentUserMethodArgumentResolver"></bean>        </mvc:argument-resolvers>        <mvc:message-converters>            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">                <property name="supportedMediaTypes">                    <list>                        <value>application/json</value>                        <value>text/html;charset=UTF-8</value>                    </list>                </property>                <property name="objectMapper">                    <!-- 自定义驱动类设置规则 -->                    <bean class="com.oig.utils.MyObjectMapper"></bean>              </property>            </bean>        </mvc:message-converters>    </mvc:annotation-driven>/** * 新建类继承mvc自带json转换类 * 新增模型规则,设置进入对象,进行扩展 * @author Administrator */public class MyObjectMapper extends ObjectMapper{    private static final long serialVersionUID = 1360761655051502549L;    public MyObjectMapper(){        //新建规则模型        SimpleModule simpleModule = new SimpleModule();        //设置模型        simpleModule.addSerializer(BigDecimal.class, new BigDecimalSerilize());        //将模型加入objectMapper对象        registerModule(simpleModule);        setSerializationInclusion(Include.NON_NULL);    }}/** * 新建的jackson转换模型规则 * double保留两位小数 * @author Administrator */public class BigDecimalSerilize extends JsonSerializer<BigDecimal>{    @Override    public void serialize(BigDecimal value, JsonGenerator gen,            SerializerProvider serializers) throws IOException,            JsonProcessingException {        gen.writeNumber(value.setScale(2, RoundingMode.HALF_UP).doubleValue());    }}
原创粉丝点击