非Webプロジェクト
サービスアーキテクチャでは、いくつかのspringbootプロジェクト単にサービスとして、およびWebサービスを提供していません
この時間は依存しません
<依存>
<groupIdを> org.springframework.boot </ groupIdを>
<たartifactId>春・ブート・スターター・ウェブ</たartifactId>
</依存関係>
しかし、その後springbootを開始し、開始が自動的にシャットダウンします後、それは次のように解決することができます
達成CommandLineRunnerを、上書きの実行方法を、この開始後に閉じないだろうことができ
@SpringBootApplication @EnableDubbo パブリック クラス SeaProviderLogApplicationは実装CommandLineRunner { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(SeaProviderLogApplication クラス、引数)を、 } @Override 公共 ボイドラン(文字列...引数)がスロー例外{ するSystem.out.println( "SeaProviderLogApplication正在を启动..." )。 一方、(真){ のThread.sleep( 6億)。 System.out.printlnは("スリープ...." ); } } }
一つは、導入のことを言うかもしれない春ブート・スターター・ウェブ主にテストの便宜のためには、実際には、ユニットテストを使用して操作することができます
使用@SpringBootTestと@RunWith(SpringRunner.class)ユニットテストに注釈をコードは次の通りであります
@SpringBootTest @RunWith(SpringRunner。クラス) パブリック クラスIndexControllerTest { @Reference(バージョン = "1.0.1" ) プライベートErrorLogService errorLogService。 @Test 公共 ボイドBBB(){ のErrorLogエラーログ = 新規のErrorLog()。 errorLog.setName( "エラー" ); System.out.println(errorLogService.sendMsg(エラーログ))。 } }
Webプロジェクト
しかし、時にはによるmavenの重合技術は、依存します共通または親、自然に導入されます
<依存>
<groupIdを> org.springframework.boot </ groupIdを>
<たartifactId>春・ブート・スターター・ウェブ</たartifactId>
</依存関係>
この時間の開始は、デフォルトのポートは8080もちろん、することができ、application.properties設定を
server.port = 8081変更を行うために、より多くのトラブル、これはhttpリクエスト、追加する必要はありません公開されていないため、スプリングブート・スターター・ウェブ依存性を、マルチサービス・ワードも頭痛ポートあり、ポートが占有問題を持っています
彼らは、真のポートを公開する必要がWebサービスを提供していないわけではないので、次の2つの方法で開始ポート番号を設定することはできません
最初:
変更アプリケーションの設定ファイルを
春: メイン: 許可-豆definition- オーバーライド:真 のWeb-用途向けタイプ:なし
第二:
変更ブートエントリを
パブリック 静的 ボイドメイン(文字列[]引数){ 新しい SpringApplicationBuilder(アプリケーションクラス) .web(WebApplicationType.NONE)// .REACTIVE、.SERVLETの .RUN(引数)。 }
OK、完璧なソリューションは、もはやポートの割り当てを検討する必要がありません
springboot統合ダボを参照することができ springboot2.x純粋な注釈統合ダボを