2017-12-28 17 views
1

私は、既存のアプリケーションから別のSpringブートサービスを順番に実行しようとしており、同じデータベース層を使用しています。 2つのアプリは異なるポートを持つ異なるサービスである必要があります。マイクロサービス用SpringプロジェクトのSub SpringBootApplicationを開始する

マイプロジェクト構造はこれです:

:私は運であることをtryiedました(これは、すべてのコントローラのエンドポイントから始まる)アプリケーション2については

@SpringBootConfiguration 
public class Application { 
    SpringApplication.run(Application.class, args); 
} 

:アプリケーションの

- com.name (Project A) 
| - Application 
| - com.name.controller 
- com.name.controller2 (New) (Project B) 
| - Application2 (New) 
| - com.name.controller2.controller (New RestController) 
| 
- com.name.storage (Project C) 
| 
| 
- com.name.service 

//@SpringBootApplication(
//  scanBasePackages={"com.name"}) 
@SpringBootConfiguration 
@ComponentScan(basePackages = {"com.name"}) 
public class Application2{ 
    SpringApplication.run(Application2.class, args); 
} 

私は多くのバリエーションを試しましたが、正しくできませんでした。 私がbasePackagesとして "com.name.storage"を使用している場合、アプリケーションは全く設定なしで始まりますが(コントローラの残りのエンドポイントは認識しません)、新しいポートで待ち受けます。

正しい設定を手伝ってもらえますか?

答えて

0

はSpringApplication.run(Application2.class、引数)を使用しない理由は、私は、私は理解わからないんだけど、この

SpringApplicationBuilder uws = new SpringApplicationBuilder(UserWebApplication.class) 
     .properties("server.port=8081", 
        "server.contextPath=/UserService"); 
uws.run(); 
SpringApplicationBuilder pws = new SpringApplicationBuilder(ProjectWebApplication.class) 
     .properties("server.port=8082", 
        "server.contextPath=/ProjectService"); 
pws.run(); 
+0

のようなものを試してみてください? – Jonny

+0

1つのアプリケーションを確実に使用できます。私は自分のプロジェクトからコードスニペットを投稿しました – StanislavL

+0

私はこの問題ではっきりしていなかったと思います。 アプリは別々のプロジェクトです。このリンクでは、問題とその解決策について説明しています。 http://www.springboottutorial.com/spring-boot-and-component-scan 何らかの理由で、Project BのAutowireフィールドでProject Cコンポーネントが見つかりません。 Project Aのパッケージをcom.name.controller1に変更したので、Project Cと同じパッケージツリーにはなく、同じ問題が発生しています。 プロジェクトAのプロジェクトCのBeanが見つかりませんでした。 – Jonny

関連する問題