2016-11-28 8 views
0

私は他のアプリケーション用の小さなフレームワークとして機能するスプリングブートアプリケーションを持っています。 2つのJMSキューとDAOレイヤーを使用して、データストアの共通セットからデータを取得して格納します。問題は、このフレームワークアプリケーションのオリジナル開発者が、com.mycompanyの下で宣言されている特定のアプリケーションのBeanを読み込むことができるように、com.mycompany.frameworkではなく、すべてのパッケージcom.mycompanyをスキャンしていることです。 myapp1またはcom.mycompany.myapp2どのJARがフレームワークのJARとともにバンドルされているかを示します。アプリケーションローダーとしてSpringBootを使用する

私たちはJVM(app1またはapp2)に1つのアプリケーションしかロードしませんが、これらのアプリケーションは他のライブラリを共有している場合があります。 (これらはapp1では必要ですがapp2では必要ないかもしれません) あなたのアドバイスは何ですか?

私の問題は、ここで説明したものと同様である: https://github.com/spring-projects/spring-boot/issues/3300

各アプリは、フレームワークを認識し、それを読み込む必要がある場合、私は議論しています。または、フレームワークがクラ​​スローダーをインスタンス化し、上記のリンクで提案されているように、アプリケーション固有のコードをロードする新しいSpringコンテキストを作成する必要がある場合。

答えて

0

おそらく、あなたのフレームワークに、@ConditionalOnPropertyまたは@ConditionalOnClassのようなSpring Bootの自動設定機能を利用することを検討するべきでしょう。そうすることで、フレームワークを使用しているアプリケーションが特定のアクション(クラスパス上に特定のjarを持つ、または設定値を設定するなど)を取る場合にのみ、特定のBeanを実際に有効にすることができます。参照チェックアウト:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-developing-auto-configuration

関連する問題