首页 > 其他分享 >mvc消息扩展对象

mvc消息扩展对象

时间:2023-06-18 23:46:08浏览次数:43  
标签:jackson FORMAT 对象 扩展 mvc import com class fasterxml

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
//    @Autowired
//    private Interceptor interceptor;
    /**
     * springboot如果需要继承webmvc那么就必须配置静态资源映射,否则访问不了
     *
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
//        前面的路径是前端访问路径,后面的是映射到本地哪个路径,/不能省略
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/static/front/");
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/static/backend/");
//        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
    }

    /**;
     * 扩展MVC框架的消息转换对象
     *
     *
     * @param converters
     */
    @Override

    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        //创建消息转换对象
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        //设置对象转换器,底层使用jackson将java对象转换为json
        messageConverter.setObjectMapper(new JacksonObjectMapper());
        //将上面的消息转换器对象追加到mvc框架的转换器集合中
        converters.add(0,messageConverter);
    }

//    @Override
//    protected void addInterceptors(InterceptorRegistry registry) {
//       registry.addInterceptor(interceptor);
//    }
}

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;

/**
 * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
 * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
 * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
 */
public class JacksonObjectMapper extends ObjectMapper {

    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";

    public JacksonObjectMapper() {
        super();
        //收到未知属性时不报异常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

        //反序列化时,属性不存在的兼容处理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);


        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))

                .addSerializer(BigInteger.class, ToStringSerializer.instance)
                .addSerializer(Long.class, ToStringSerializer.instance)
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));

        //注册功能模块 例如,可以添加自定义序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}

标签:jackson,FORMAT,对象,扩展,mvc,import,com,class,fasterxml
From: https://www.cnblogs.com/liu-jin/p/17490017.html

相关文章

  • SpringMVC
    1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如Student、User等一类称为业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和......
  • SpringMVC笔记
    一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建springMVC的配置文件6、测试HelloWorlda>实现对首页的......
  • C++创建对象的4种方式对比
    三种方式分别为等号,圆括号,大括号,最后一种是等号和大括号一起使用等号和圆括号是以前就存在的,大括号是新的语法,其具有2个优点:防止变窄转换:大括号不支持变窄转换,等号和圆括号为了向下兼容支持变窄转换免疫C++最令人头疼的解析:C++规定任何可以被解析为一个声明的东西必......
  • Java面向对象编程的三大特性:封装、继承、多态。
    一、封装封装的核心在于私有化(private),大部分情况下,来封装对象的属性,很少有封装方法的。通过将对象的属性封装,提供对外的公共方法来访问属性是最常见的方式。publicstaticclassFengZhuang{//通过封装,设置私有属性privateStringname;privat......
  • SpringMVC — 控制器
    SpringMVC—控制器创建一个Controller控制器:使用@Controller对类进行注解,将被标注的类设置为一个控制器使用@RequestMapping对类或方法进行注解,用来映射一个请求和请求的方法。属性value指请求的urlmethod可指明RequestMethod.POST即表单必须要是method=”po......
  • SpringMVC —— 前提
    SpringMVC—前提前提了解:Web开发中的一些概念JavaBean规范必须是一个公共类,如:publicclassUser{}必须有一个空的构造器类的成员变量是私有,如:privateintid;通过getter/setter来访问属性在软件体系架构中,分层式结构最常见,微软推荐的分层式结构为三层:数据访......
  • Python:zip+dict将两个list列表对象转为dict字典对象
    将两个list列表对象转为dict字典对象代码示例keys=['one','two','three']values=[1,2,3]dct=dict(zip(keys,values))print(dct)#{'one':1,'two':2,'three':3}参考文章Python。将2个列表转换为一个字典对象[重复]......
  • Hive扩展之web界面:hwi接口
    HWI是HiveWebInterface的简称,是hivecli的一个web替换方案,以开发的网页形式查看数据切换用户启动集群[root@master~]#su-hadoopLastlogin:TueMay213:18:34CST2023onpts/0[hadoop@master~]$start-all.shThisscriptisDeprecated.Insteadusestart-dfs.......
  • 对象的finalize调用链和clone调用链一样,必须手工构造
    classA{publicA(){System.out.println("Aconstruct");}@Overridepublicvoidfinalize(){System.out.println("Afinalize");}}classBextendsA{String......
  • OPC DA的Client对象模型
    OPCDA的Client对象模型可以如下图表示一个OPCServer对象可以包含一个OPCGroups对象一个OPCGroups对象可以包含多个OPCGroup对象一个OPCGroup对象可以包含一个OPCItems对象一个OPCItems对象可以包含多个OPCItem对象一个OPCItem对象就是OPCServer端的一个变量以下......