2017-01-06 6 views
0

プロジェクトにはProjectAとProjectBが必要です。 PROJECTAで@Configurationクラスをあるプロジェクトから別のプロジェクトにインポートする

私が持っている:

ProjectBののクラスパスに
package somePackageOfProjectA; 
    @Configuration 
    @EnableWebMvc 
    @ComponentScan(basePackages = { "bla.bla" }) 
    public class ProjectAConfig extends WebMvcConfigurerAdapter { 
    .. 
    } 

私はPROJECTAを追加しましたし、私は次の設定があります。今、すべての良いまで

package somePackageOfProjectB; 
    @Configuration 
    @EnableWebMvc 
    @Import(ProjectAConfig .class) 
    @ComponentScan(basePackages = { "bla.bla" }) 
    public class ProjectBConfig extends WebMvcConfigurerAdapter { 
    .. 
    } 

を、コンパイル・エラーなし( ProjectAConfigはProjectBで認識されます)。

サーバーを起動すると問題が発生します。未知の理由は、ProjectBでsomePackageOfProjectA.ProjectAConfigのみを検索しようとしていますが、ProjectAで検索せずにエラーが発生するため、存在しません。

アイデア? ありがとうございます!

+0

この設定をインポートするのではなく、ProjectBからProjectAを拡張することをお勧めしますか? インポートする場合は、ComponentScanがProjectAがあるパッケージを探していることを確認してください。 –

+0

ComponentScanを追加しましたが、同じ問題があります。 Mavenを使用してProjectBからProjectAをどのように拡張する必要がありますか? – Aditzu

+0

をProjectBにすると、親プロジェクトがProjectAであると言うことができます –

答えて

0

WebMvcConfigurerAdapterを同じWebアプリケーション内で拡張する2つのクラスを持つことは間違っていますが、Springが何を期待して、ViewResolversとHttpMessageConvertersのリストをマージするのですか?

プロジェクト間で再利用したいBeanがある場合は、WebMvcConfigurerAdapterを拡張するクラスではなく、別の@Configurationクラスに配置することをお勧めします。

+0

ProjectAConfigからWebMvcConfigurerAdapterを削除して別の問題が発生しました。私はj ava.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy例外を取得するため、ProjectAConfigがProjectBに表示されないようです。 – Aditzu

関連する問題