2017-06-28 3 views
0

Ich spiele mit Spring Boot 2.0.0M2 herum und versuche, eine CLI-Anwendung zu erstellen, keine Web-Anwendung. Mein Problem ist auch, dassWie kann ich eine ObjectMapper-Instanz im Spring Boot erhalten, ohne von Spring-Boot-Starter-Web zu erben?

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

in meinem Build einschließlich wird ObjectMapper nicht durch Stiefel geschaffen, weil

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

Was ist die beste Praxis ist, wenn Sie Frühlings-Boot-Instanz haben wollen und Jackson konfigurieren, aber nicht möchte einen Webserver starten?

+0

Können Sie nicht einfach das Glas hinzufügen? –

+2

Mögliches Duplikat von [ObjectMapper im Frühling konfigurieren] (https://StackOverflow.com/questions/7854030/configuring-objectmapper-in-spring) – ledniov

+0

Das ist, Spring Boot konfiguriert automatisch den 'ObjectMapper' und kann von mehreren gut eingestellt werden dokumentierte Konfigurationseigenschaften Wenn ich den 'ObjectMapper' erstelle, wie die andere Frage vorschlägt, sollte das alles von Hand gemacht werden, wenn ich mich nicht irre. – Serandel

Antwort

3

Warum initiieren Sie es nicht einfach selbst?

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

Mein Problem ist, wie ich in einem früheren Kommentar gesagt habe, dass Spring Boot "ObjectMapper" automatisch mit mehreren gut dokumentierten Konfigurationseigenschaften konfiguriert. Wenn ich es selbst anwende, ist all diese Abstimmung verloren, wenn ich nicht falsch liege. – Serandel

+0

Ja, Sie müssen es von Hand tun, aber es ist nicht so schwer, und mit Blick auf den Quellcode von 'Jackson2ObjectMapperBuilder' scheint es keine Standardwerte zu setzen. Es erkennt automatisch einige bekannte Module, aber das Hinzufügen von Hand ist nicht so schwer. Wenn Sie wirklich wollen, könnten Sie das Java in Ihren Code kopieren, es ist ASL2, aber ich würde nur meinen eigenen Objekt-Wrapper verwenden. –

0

Sie können versuchen, und org.springframework:spring-web Abhängigkeit hinzufügen, wie die Klasse darin befindet.

Verwandte Themen