我有一个Spring 5(不是Spring Boot)项目,它有一个endpoint返回在依赖关系jar中定义的对象(我不能修改它)。这个对象有一个日期字段(LocalDateTime)。
日期在响应中的格式如下:
{
"dayOfMonth": 21,
"dayOfWeek": "THURSDAY",
"month": "FEBRUARY",
"year": 2019,
"dayOfYear": 52,
"hour": 11,
"minute": 24,
"nano": 753000000,
"second": 32,
"monthValue": 2,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
}
我怎么能把is写成ISO 8601或类似的呢?我尝试添加以下依赖项:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.9.8</version>
</dependency>
我还尝试为ObjectMapper创建一个主bean:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.registerModule(new Jdk8Module());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return objectMapper;
}
映射器在显式使用时工作正常,但在Spring返回JSON REST响应时则不然。
为了简化而不是写完整的代码,我希望像下面这样的endpoint能够正确地隐式格式化日期。
@GetMapping(path = "/date", produces = "application/json")
public @ResponseBody ResponseEntity<LocalDateTime> date(@RequestHeader HttpHeaders headers) {
return new ResponseEntity<>(LocalDateTime.now(), HttpStatus.OK);
}
谢谢。
我通过添加一个配置类来修复它,该类将我的ObjectMapper链接到基于此博客条目的HTTPMessageConverter。
@Configuration
public class JacksonConfiguration {
@Autowired
ObjectMapper mapper;
private RequestMappingHandlerAdapter annotationMethodHandlerAdapter;
@PostConstruct
public void init() {
List<HttpMessageConverter<?>> messageConverters = annotationMethodHandlerAdapter.getMessageConverters();
for (HttpMessageConverter<?> messageConverter : messageConverters) {
if (messageConverter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter m = (MappingJackson2HttpMessageConverter) messageConverter;
m.setObjectMapper(mapper);
}
}
}
@Autowired
public void setAnnotationMethodHandlerAdapter(RequestMappingHandlerAdapter annotationMethodHandlerAdapter) {
this.annotationMethodHandlerAdapter = annotationMethodHandlerAdapter;
}
}
问题内容: 如果我用javadoc 编写,它不会出现,因为标签在格式化文本方面具有特殊功能。 如何在Javadoc中显示此字符? 问题答案: 您可以使用为 < 和为 > 。
问题内容: 调用a 并获取列的响应将日期值设置为 但。目前,我有一个类似的日期值。我想将此值转换为Edm.DateTIme格式,如上所示。 任何功能都可以实现相同。任何工作。请帮忙。 问题答案: 下列: 打印出: 请注意时区的转换。Java 希望在偏移量中使用冒号。 说到时区,我不知道OData Atom XML是否在某处指定了时区。Edm.DataTime没有此类功能。 编辑 :如果要将输出转换
我使用ClientHttpRequestInterceptor报告RestTemplate的请求输出和响应。如果出现异常,我需要记录响应,比如模板是否试图用错误的类取消对响应的处理。 这就是拦截器的启用方式: 这里唯一接受的接口是ClientHttpRequestInterceptor。拦截器看起来像: 我知道这门课不可能得到回应,你能给出一个替代的解决方案吗? 这是异常的一个例子:(请不要解释如
如有任何帮助,我们将不胜感激。 多谢了。
问题内容: 我需要在 不更改URL的情况下 进行路由。 在自己实现此功能之前,我尝试过通过React Router寻找一些东西。我看到有这样一个东西 : createMemoryHistory([options]) createMemoryHistory创建一个不与浏览器URL交互的内存历史对象。当您需要自定义用于服务器端呈现,自动测试的历史记录对象或不想操纵浏览器URL(例如,将应用程序嵌入到i
本文向大家介绍mysql不重启的情况下修改参数变量,包括了mysql不重启的情况下修改参数变量的使用技巧和注意事项,需要的朋友参考一下 通常来说,更新mysql配置my.cnf需要重启mysql才能生效,但是有些时候mysql在线上,不一定允许你重启,这时候应该怎么办呢? 看一个例子: mysql> show variables like 'log_slave_updates'; +-------