- 编写Service实现类
- 编写Mapper的sql,但复杂的sql语句需要写到mapper对应的xml文件中
- 日期类型格式化处理
-
/** * 扩展springmvc框架的消息转换器 * @param converters */ @Override protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) { log.info("开始扩展消息转换器..."); //创建一个消息转化器对像 MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); //设置对象转换器,可以将Java对象转为json字符串 converter.setObjectMapper(new JacksonObjectMapper()); //将我们自己的转换器放入spring MVC框架的容器中 converters.add(0,converter); }
这段代码是一个在 Spring MVC 中扩展消息转换器的方法。它执行以下操作:
-
extendMessageConverters
方法用于扩展 Spring MVC 的消息转换器列表。 -
MappingJackson2HttpMessageConverter
是一个消息转换器,用于将 Java 对象转换为 JSON 字符串。 -
JacksonObjectMapper
是一个自定义的 Jackson 对象映射器,用于设置对象转换器。-
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(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)));
对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
* 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
* 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] -
addDeserializer
是SimpleModule
类的方法之一,用于注册自定义的反序列化器。该方法接受两个参数:要进行反序列化的目标类型(如
LocalDateTime.class
)和相应的反序列化器实例(如new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))
)。 -
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))
是用于创建LocalDateTimeDeserializer
对象的代码。LocalDateTimeDeserializer
是一个自定义的反序列化器类,用于将字符串解析为LocalDateTime
类型的对象。它接受一个参数:一个DateTimeFormatter
对象,用于指定日期时间的格式。在给定的代码中,
DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)
用于创建一个日期时间格式化器。DEFAULT_DATE_TIME_FORMAT
是一个常量,表示日期时间的默认格式。因此,整个表达式的作用是创建一个
LocalDateTimeDeserializer
对象,并使用默认的日期时间格式化器来解析字符串为LocalDateTime
类型的对象。
-
-
通过
converter.setObjectMapper(new JacksonObjectMapper())
将自定义的对象映射器设置到消息转换器中,以便将 Java 对象转换为 JSON 字符串。 -
converters.add(0, converter)
将自定义的消息转换器添加到 Spring MVC 框架的转换器列表的起始位置。 -
总体来说,这段代码的作用是在 Spring MVC 中扩展消息转换器,将 Java 对象转换为 JSON 字符串,并将自定义的消息转换器添加到转换器列表中,以便在处理请求和响应时进行相应的数据转换。
-