メインのスプリング ブート プロジェクトと、@Contollers、@Services などを含む 2 番目のスプリング プロジェクトの 2 つのプロジェクトがあります。
メインプロジェクトでこのサービスのいくつかを使用しようとしています。here、here、here 、および他の多くのような同様の質問を見ましたが、うまくいきません
1)私がちょうど持っている場合
@SpringBootApplication
public class App { ... }
2番目のプロジェクトからサービスが見つからないため、コンパイルされません
2) 2 番目のパッケージをスキャンしようとすると
@SpringBootApplication
@ComponentScan("secondPackage")
public class App {}
その後、アプリケーションはエラーなしで起動しますが、コントローラーのマッピングはまったく機能しません。両方のプロジェクトからのマッピングを解決できません。
3)次に、2番目のパッケージからコントローラーを除外しようとしましたが、コントローラーは必要ないため、マッピングはまだ機能しません
@ComponentScan(basePackages="secondPackage", excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Controller.class)})
4)次に、特定のサービスをスキャンしようとしましたが、この場合、他のリソースが利用できず、多くのパスを含める必要があります
@ComponentScan({"first package", "second package"})
5) 最後に、2 つの構成ファイルを作成しようとしました
@Configuration
@ComponentScan(basePackages = {"mainPackage"})
public class MainConfiguration {
}
@Configuration
@ComponentScan(basePackages="secondPackage",
excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = Controller.class)})
public class SecondConfiguration {
}
しかし、SpringApplication.run(App.class, args); の前にコンテキストを準備する方法の例が見つかりませんでした。そして、私のコンテキストでアプリを実行します。お気に入り
ApplicationContext myContext = new AnnotationConfigApplicationContext(OrderStatusConfiguration.class, ShopRuServicesConfiguration.class);
SpringApplication.run(App.class, myContext, args);
では、なぜマッピングが機能しないのか、または 2 番目のプロジェクトから自動配線サービスを適切に行うにはどうすればよいのか、アドバイスをください!
どんな助けにも感謝します!ありがとう!