2017-10-28 3 views
0

Springアプリケーション設計の質問。私はユーティリティのJavaライブラリを作成したいと思います。これは私の他の小さなアプリケーション全体に依存することになります。すべての私のアプリケーションはスプリングベースのアプリケーションです。ユーティリティライブラリモジュールで自動配線を使用することをお勧めします。また、このユーティリティー・ライブラリーは、プロパティー・ファイルから読み取るプロパティーをほとんど必要としません。このモジュールを使用する他のアプリケーションが春になると、私は共通のユーティリティライブラリを書くことにどのようにアプローチしますか?スプリング設計ユーティリティモジュール

+0

ライブラリを**できるだけ**に依存することをお勧めします** - 理想的には何もありません。依存関係を導入する場合は、それが必要かどうか、そしてそれが図書館の消費者にどのような負担をかけるかについて、長く考えてください。個人的には、私はSpringが埋め込まれたライブラリを持っています - 私は良いドキュメントを好み、Spring自身でそれらを設定することを大いに好みます。ライブラリの中でSpringを使用すると、作成するよりも多くの問題が解決されると判断した場合、Springのautoconfを使用して、ライブラリの機能を明示的に有効にする必要があります。 –

+0

[春のドキュメント](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html)を参照してください。 –

+0

あなたのライブラリはSpringに依存しません(Springの依存関係に依存してはいけません)。 Springアプリケーションを使用してライブラリを結びつけるためのアダプタを作成する方がよいでしょう。 – Andrew

答えて

1

助けがあれば、私はユーティリティライブラリでオートワイヤリングを使用しません。依存関係のインバージョンを使用して、実際にライブラリを使用している瞬間までの依存関係の注入を遅らせるだけです。次に、それをクライアントアプリケーションのBeanとして宣言し、選択した場合は自動配線を使用できます。

同じことがプロパティから始まり、関連するメソッド/コンストラクタでパラメータを作成してから、各クライアントアプリケーションのプロパティファイルを使用して任意のプロパティを定義できます。

+1

はい、これです。誰もがこれをやったなら、私はもっと幸せな開発者になるでしょう! 'MyLibraryConfiguration'インターフェースを作成し、それをctorで受け取ります。ユーザーがSpring Beanとして実装し、それまでのプロパティを注入したい場合に使用します。 –

関連する問題