gpt4 book ai didi

rest - 自定义 ObjectMapper 不适用于 spring boot hateoas

转载 作者:行者123 更新时间:2023-12-04 18:04:26 24 4
gpt4 key购买 nike

我使用 spring-boot 和 Spring-boot-starter hateoas 开发了一个休息服务。我正面临自定义 ObjectMapper 的问题。代码如下:

应用程序.java

@Configuration
@Import(BillServiceConfig.class)
@EnableAutoConfiguration
@EnableEurekaClient
@ComponentScan({"com.bill"})
@EnableWebMvc
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class Application extends WebMvcConfigurerAdapter{

@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.indentOutput(true).dateFormat(new SimpleDateFormat("MM-yyyy-dd"));
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
builder.configure(objectMapper);
return builder;
}

依赖关系:

dependencies {
compile "org.springframework.boot:spring-boot-starter-hateoas"
compile "org.springframework.boot:spring-boot-starter-ws"
compile "org.springframework.boot:spring-boot-starter-actuator"

比尔.java:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonRootName("bills")
public class Bill{

BillController.java:

public ResponseEntity<Resources<Resource<Bill>>> getBills(){

我得到的输出是:

{
_embedded: {
billList:

但我需要用“bills”代替“billList”。这是因为 ObjectMapper 没有得到定制。我是否缺少任何配置,请帮助我解决这个问题。提前致谢。

最佳答案

我正在使用 spring-boot 1.5 RC1。如果删除 @EnableHypermediaSupport 注释,只要类路径上有 java 时间模块,spring-boot 就应该为你配置 spring-hateoas 和 ISO 8601 日期。

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

无论如何这对我有用。

如果您想要进一步的自定义配置,请参阅 http://github.com/spring-projects/spring-hateoas/issues/333 中的解决方案

关于rest - 自定义 ObjectMapper 不适用于 spring boot hateoas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com