Commons beanutils の代替品を探しています。その理由は、beanutils が、私が使用している既存のライブラリと競合する commons-logging に依存しているためです。
競合が発生しない/最小限の競合を引き起こす小さな自己完結型の代替案が必要です。
私が求めている主な機能は、ネストされたプロパティの取得です。
前もって感謝します、スティーブン
Commons beanutils の代替品を探しています。その理由は、beanutils が、私が使用している既存のライブラリと競合する commons-logging に依存しているためです。
競合が発生しない/最小限の競合を引き起こす小さな自己完結型の代替案が必要です。
私が求めている主な機能は、ネストされたプロパティの取得です。
前もって感謝します、スティーブン
プロパティの処理はJacksonの主な焦点ではありませんが、この記事に従って、そのために使用できます。
基本的な考え方は、JSON を POJO との間で読み書きできるだけでなく、POJO を Java Map として「シリアライズ」する変換など、互換性のある変換も実行できるということです。表現間を行ったり来たりできるので、基本的に Bean イントロスペクターを無料で入手できます。
Jackson には外部依存関係はありませんが、コア (ストリーミング API、impl) とマッパー jar (データ バインディング) の両方が必要です。
Joddには非常に優れたライブラリのコレクションがあります。Jodd BeanUtilが役立つかどうかを確認してください。
SFL4j が提供する代替の commons-logging ブリッジ実装を使用することで、commons-logging との競合を解決できる場合があります。
多くの場合、commons-logging.jar を jcl-over-slf4j.jar に置き換えると、commons ロギングに関連するクラス ローダーの問題が即座に解決され、永続的に解決されます。
この依存関係を回避するために独自のミニ beanutils を作成することになり、commons-beanutils を完全に削除しました。
SLF4J は、他のいくつかの依存関係を壊したため、最終的には役に立ちませんでした (くそー weblogic!)。
commons-beanutils はいくつかのフェッチをキャッシュしていくつかの反射呼び出しを削除するように見えるため、私自身の実装はおそらく遅くなります。
私の実装のソース コードを取得することに興味がある場合は、私にメッセージを送ってください。