如何在Spring Boot中获取ObjectMapper实例而不继承spring-boot-starter-web?

问题描述 投票:0回答:4

我正在使用 Spring Boot 2.0.0M2,尝试创建一个 CLI 应用程序,而不是 Web 应用程序。我的问题是,即使包括

  compile 'org.springframework.boot:spring-boot-starter'
  compile 'org.springframework.boot:spring-boot-starter-json'

在我的构建中,ObjectMapper 不是由 Boot 创建的,因为

Bean method 'jacksonObjectMapper' not loaded because @ConditionalOnClass did not find required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'

当您想要拥有 Spring Boot 实例并配置 Jackson 但不想启动 Web 服务器时,最佳实践是什么?

spring spring-mvc spring-boot jackson jackson-databind
4个回答
20
投票

如果您想避免包含完整的 Web 堆栈(自 Spring Boot v.2.0.0M4 起),可以添加

spring-boot-starter-json


4
投票

你为什么不自己初始化它呢。

@Bean
ObjectMapper objectMapper() {
    return new ObjectMapper();
}

2
投票

您可以尝试添加

org.springframework:spring-web
依赖项,因为该类位于其中。


0
投票

确保您的 pom.xml 或 build.gradle 中有 spring-boot-starter-web 依赖项,因为它包含 ObjectMapper 和 spring-boot-starter-json 以及 spring-web 依赖项等..

© www.soinside.com 2019 - 2024. All rights reserved.