[解決済み] Spring Bootが暗黙的に使用するJackson JSONマッパーをカスタマイズする方法とは?
質問
Spring Boot (1.2.1)を使用しています。 RESTfulなWebサービスの構築 チュートリアルにあるのと同じ方法です。
@RestController
public class EventController {
@RequestMapping("/events/all")
EventList events() {
return proxyService.getAllEvents();
}
}
上記のように、Spring MVCは暗黙のうちにJacksonを使用して私の
EventList
オブジェクトをJSONにシリアライズするためにJacksonを暗黙的に使用しています。
しかし、JSON形式に対して、次のような簡単なカスタマイズを行いたい。
setSerializationInclusion(JsonInclude.Include.NON_NULL)
質問です。 暗黙のJSONマッパーをカスタマイズする最も簡単な方法は何でしょうか?
でのアプローチを試しました。 このブログの記事 で、CustomObjectMapperの作成などをしていますが、ステップ3のquot;Springコンテキストへのクラス登録"で失敗しています。
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'jacksonFix': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire method: public void com.acme.project.JacksonFix.setAnnotationMethodHandlerAdapter(org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter);
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter]
found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
私は最新のSpring Bootでこれを動作させる簡単な方法を探している一方で、これらの手順はSpring MVCの古いバージョン用であるように見えます。
どのように解決するのですか?
プロパティのインクルージョンやその他多くの設定は
application.properties
:
spring.jackson.default-property-inclusion=non_null
の中にテーブルがあります。 ドキュメント に、使用可能なすべてのプロパティの一覧表があります。
もっとコントロールしたい場合は、Spring Bootの設定をプログラムでカスタマイズすることもできます。
Jackson2ObjectMapperBuilderCustomizer
ビーンを使ってプログラム的にカスタマイズすることもできます。
のドキュメントで説明されています。
:
コンテキストの
Jackson2ObjectMapperBuilder
は、1つまたは複数のJackson2ObjectMapperBuilderCustomizer
ビーンによってカスタマイズできます。このようなカスタマイザービーンズは順序付けることができ(Boot 自身のカスタマイザーの順序は 0)、Boot のカスタマイズの前と後の両方に追加のカスタマイズを適用することが可能です。
最後に、Boot の設定を一切必要とせず
ObjectMapper
がどのように構成されるかを完全に制御したい場合は、独自の
Jackson2ObjectMapperBuilder
ビーンを宣言します。
@Bean
Jackson2ObjectMapperBuilder objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
// Configure the builder to suit your needs
return builder;
}
関連
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
セミコロン期待値エラー解決
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
eclipse にリソースリーク:'in' が閉じない
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
java 365*1000*60*60*24 計算問題
-
[解決済み] Autowired - 依存関係にあるタイプの修飾されたビーンが見つかりません。
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
強制型変換について
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
アノテーション「@Retention」の役割
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java:未解決コンパイル問題の解決方法
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ