Spring Bootアプリケーションが待機するTCP/IPポートをどのように設定すればよいのですか。そのため、デフォルトポートの8080は使用されません。
docsで述べられているように jvm server.port
にコマンドラインオプションを使用してシステムプロパティとして-Dserver.port=8090
を設定するか、またはapplication.properties
に/src/main/resources/
を追加します。
server.port = 8090
ランダムポート用
server.port=0
Spring BootアプリケーションでEmbedded Tomcatのポートを変更するには、主に2つの方法があります。
application.propertiesを変更します
まず、/ resourcesフォルダーにあるapplication.propertiesファイルを試してください。
server.port = 8090
VMオプションを変更します
2つ目の方法は、ファイルを変更してローカルにしか必要のないものをチェックインしたくない場合は、vm argを使用できます。
[実行] - > [設定の編集] - > VM optionsに移動します。
-Dserver.port=8090
さらに詳しい情報が必要な場合は、こちらのブログ記事をご覧ください。 Spring Bootアプリケーションのポートの変更
Spring Bootは さまざまな設定外部化メカニズムを提供する (さまざまなPropertySource
実装および/またはEnvironment
オブジェクトに順番に配線されたプロセッサを通じて)次の方法でjarアーカイブの任意のプロパティoutsideを設定できます。
コマンドライン引数を通してアプリケーション引数としてプロパティを渡します。
Java -jar <path/to/my/jar> --server.port=7788
SPRING_APPLICATION_JSON
のプロパティから(Spring Boot 1.3.0以降)
U * IXシェルで環境変数を定義します。
SPRING_APPLICATION_JSON='{"server.port":7788}' Java -jar <path/to/my/jar>
Javaシステムプロパティを使用して:
Java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
コマンドライン引数を渡します。
Java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
JVMシステムプロパティを定義する
Java -Dserver.port=7788 -jar <path/to/my/jar>
OS環境変数を定義する
U * IXシェル
SERVER_PORT=7788 Java -jar <path/to/my/jar>
Windows
SET SERVER_PORT=7788
Java -jar <path/to/my/jar>
プロパティを./config/application.properties
設定ファイルに配置します
server.port=7788
実行します。
Java -jar <path/to/my/jar>
プロパティを./config/application.yaml
に配置する
server:
port: 7788
実行します。
Java -jar <path/to/my/jar>
プロパティを./application.properties
に配置する
server.port=7788
実行します。
Java -jar <path/to/my/jar>
プロパティを./application.yaml
に配置する
server:
port: 7788
実行します。
Java -jar <path/to/my/jar>
上記の方法をすべて組み合わせることができ、リストの前の設定が後者の設定よりも優先されます。
例えば:
SERVER_PORT=2266 Java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
サーバーが起動し、ポート7788で待機します。
これは、PropertySourceのデフォルトプロパティを優先順位を低くして(通常はアーカイブにパッケージ化するか、またはソースにコーディングして)実行時環境でオーバーライドすることで非常に便利です。そしてそれはSpring Bootのデザイン哲学です。
箱から出してすぐに意見を述べることができますが、要件がデフォルトから逸脱し始めるとすぐに邪魔になりません。
SERVER_NAME
からserver.name
への変換は リラックスバインディングによって行われました 。
また、プログラムでポートを設定することもできます
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
Javaコードでポートを設定できます。
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
あるいはapplication.ymlで:
server:
port: 9999
あるいはapplication.propertiesで:
server.port=9999
またはコマンドラインパラメータとして:
-Dserver.port=9999
あなたはそれをローカルで実行したい場合は、これを使用してください -
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
Spring Boot 2.0 以降、動作するコマンドは次のとおりです(手がかりは here )。
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
application.yml
を使用している場合は、次の行を追加してください。
server:
port: 9000
ランダムポートの場合はもちろん0です。
Springのドキュメント で説明されているように、それを行うにはいくつかの方法があります。
コマンドラインでポートを設定してください(たとえば8888)。
-Dserver.port=8888
または--server.port=8888
例:Java -jar -Dserver.port=8888 test.jar
または、application.propertiesにポートを設定してください。
server.port=${port:4588}
または(yaml構文のapplication.yml内)
server:
port: ${port:4588}
-Dport(または-Dserver.port)によって渡されたポートがコマンドラインで設定されている場合は、このポートが考慮されます。そうでない場合、ポートはデフォルトで4588になります。
環境変数に関係なく、プロパティファイルでポートを強制したい場合は、次のように書きます。
server.port=8888
application.properties
に以下のプロパティを含める
server.port=8080
プログラム的に実行する方法が必要な場合は、起動時に設定できます。
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
これは環境に依存するportsのようなものに役立つかもしれません。良い一日を
設定内のEmbeddedServletContainerFactory
Beanをオーバーライドすることでportを指定できます(Javaベースまたはxml)。そこで、使用されている埋め込みサーブレットコンテナのポートを指定できます。 Spring Boot - Core "埋め込みサーブレットコンテナのサポート"の段落と例を参照してください。お役に立てれば。
他の答えを拡張するには:
テストのためのドキュメントに統合テストでポートを設定する方法を説明するセクションがあります。
統合テストでは、アノテーション@SpringBootTest
とwebEnvironment
の値を使ってポート設定を行います。
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
@Value("${local.server.port}")
と同じ@LocalServerPort
を使って値を注入することができます。
ランダムポートテストの設定
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
定義されている場合はserver.port
から値を取ります。
@TestPropertySource(properties = "server.port=9192")
を使用して定義されている場合は、他の定義値をオーバーライドします。src/test/resources/application.properties
からの値を取ります(もしあれば)。8080
で始まります。例:
定義済みポートテスト設定:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
Spring Bootアプリケーションが起動すると、Tomcatなどの組み込みサーバはデフォルトのポートで起動します。組み込みTomcatはデフォルトで8080ポートで始まります。デフォルトのサーバーポートを変更する方法はたくさんあります。
プロパティファイル(.properties/.yml)の使用
プロパティファイルを使用してサーバーポートを変更するには、 server.port プロパティを設定する必要があります。
a。 src\main\resources\application.propertiesなどのクラスパスでapplication.propertiesを使用する
server.port = 8585
サーバーは8585ポートで起動します。ランダムなサーバーポートを取得するには、このプロパティに0を割り当てます。
server.port = 0
これでスプリングブートは、システム内のどのサーバーでも現在使用されていないポートでサーバーを起動します。
b。 src\main\resources\application.ymlのようなクラスパスでapplication.ymlを使う。
server:
port: 8585
サーバーは8585ポートで起動します。
ランダムポートの場合は、0を割り当てます。
server:
port: 0
--server.portまたは-Dserver.portを使用したJavaコマンドの使用
My-app.jarという名前の実行可能JARがあるとします。次に、Javaコマンドを使用してSpring Bootアプリケーションを起動するときに、次のように引数を使用できます。
--server.portを使用する
Java -jar my-app.jar --server.port=8585
-Dserver.portを使用する
Java -jar -Dserver.port=8585 my-app.jar
サーバーは8585ポートで起動します。
--portまたは-Dportを短縮して使用したJavaコマンドの使用
--server.portと-Dserver.portを短くするには、serverキーワードを削除して、 - portや-Dportなどの短いキーワードにします。短いキーワードでも構いません。ここではportを短いキーワードとして使っています。それを達成するためには、次のようにプロパティファイルにプレースホルダを設定する必要があります。
Application.propertiesを使用する
server.port=${port:8282}
Application.ymlを使う
server:
port: ${port:8282}
引数としてポートを渡さない場合、デフォルトではserverは8282から始まります。別のポートが必要な場合は、次のように引数で目的のポートを渡す必要があります。 my-app.jarという名前の実行可能JARがあるとします。
--portを使用する
Java -jar my-app.jar --port=8585
-Dportを使う
Java -jar -Dport=8585 my-app.jar
サーバーは8585ポートで起動します。
SpringApplicationでSERVER_PORTをプログラム的に使用する
SpringApplicationには、スプリングブートのデフォルトプロパティを変更するために使用されるsetDefaultProperties()というメソッドがあります。デフォルトのポートを変更したいのであれば、Mapを作成してSERVER_PORTキーでポートを設定する必要があります。例を見つけてください。
MyApplication.Java
package com.humoyun;
import Java.util.HashMap;
import Java.util.Map;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
Map<String, Object> map = new HashMap<>();
map.put("SERVER_PORT", "8585");
application.setDefaultProperties(map);
application.run(args);
}
}
Spring Bootは8585ポートでサーバを起動します。
リソース内に存在するapplication.properties
ファイル内:
server.port=8082
使用しているアプリケーション構成ファイルに応じて、それを実行する3つの方法があります。
a) application.properties file setを使用している場合
server.port = 8090
b) application.yml fileを使用している場合は、下記のようにサーバーポートプロパティをYAML形式で設定
server:
port: 8090
c) mainメソッドでSystemプロパティとしてプロパティを設定することもできます
System.setProperty("server.port","8090");
application.properties
ファイルに次の行を追加します。
server.port = 65535
その敵をどこに置くか:
24.3アプリケーションプロパティファイル
SpringApplicationは、以下の場所にあるapplication.propertiesファイルからプロパティーをロードし、それらをSpring Environmentに追加します。
A /config subdirectory of the current directory The current directory A classpath /config package The classpath root
リストは優先度順になっています(リストの上の位置に定義されているプロパティは、下の位置に定義されているプロパティより優先されます)。
私の場合はjar
ファイルがあるディレクトリに置きます。
から:
Application.propertiesを変更することによって、サーバー構成を変更できるものは他にもたくさんあります。セッションタイムアウト、アドレス、ポートなどのように。
ref: http://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html
私は以下のようにそれらのいくつかを使用しました。
server.session.timeout=1
server.port = 3029
server.address= deepesh
誰もが言ったように、あなたはapplication.propertiesで指定することができます
server.port = 9000 (他の値でも構いません)
プロジェクトでスプリングアクチュエータを使用している場合、デフォルトでは、
8080、そして変更したい場合はapplication.propertiesに記載
management.port = 9001 (他の値でも構いません)
実際、最も簡単な方法は server.port プロパティを設定することです。
IDEとしてSTSを使用している場合は、バージョン3.6.7以降、実際に Spring Properties Editor を使用してプロパティファイルを開くことができます。
このエディタは、すべてのSpring Bootプロパティにオートコンプリートを提供します。 port と書いてCTRL + SPACEを押すと、 server.port が最初の選択肢になります。
これをapplication.properties
ファイルに追加してください。
server.port= 8080
Application.propertiesファイルにポート番号を指定すると問題が解決します
server.port = 8080
"portはあなたの選択次第で、アプリケーションをホストしたい場所に依存します。"
この助けが願っています
application.properties => server.port = 8090 [application.yml => サーバー ポート:8090
例えば他の答えで述べたようにプロパティserver.port = 8080を使うことは間違いなく行く方法です。環境プロパティを公開することもできます。
SERVER_PORT=8080
春のブーツは "。"を置き換えることができますので。最近のバージョンでは、 "_"の場合は環境変数の大文字、小文字の場合は小文字です。これは、application.properties
を追加/編集したり、コマンドラインでシステムプロパティを渡したりせずに、その環境変数を定義するだけでよいコンテナで特に便利です(つまり、-Dserver.port=$PORT
)。
1.1プロパティファイルを介して更新します。
/src/main/resources/application.properties
server.port = 8888
yamlファイルで更新する。
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
プロジェクトのapplication.properties
にsrc/main/resources
を入れてそこに渡してください。
server.port=****
****
はポート番号を表します。
以下の方法でポートを追加できます。
「実行」 - >「構成」セクション
application.xml
にserver.port=XXXX
を追加
/ src/main/resources /の下のapplication.propertiesに設定できます。
server.port = 8090
Springブートポートを設定するためにSERVER_PORT
環境変数を使うこともできます。環境変数を設定してアプリを再起動するだけです。
set SERVER_PORT=9999 // on windows machine
export SERVER_PORT=9999 // on linux
これらの環境変数をシステム全体で設定しない場合は、同じセッションで起動アプリを実行する必要があります。
Tomcatが組み込まれているため、springbootはport:8080
上で動作します。場合によっては、エラーport 8080 already in use
がスローされることがあります。このような問題を回避するために、サーバーポートを設定できます。
server.port=9898
を追加
以下の引数でアプリケーションを実行してください。
spring-boot:run -Drun.jvmArguments='-Dserver.port=8081'
あなたのスプリングブートプロジェクトのresourcesフォルダにあるapplication.propertiesファイルであなたのportを設定することができます。
server.port="port which you need"
それを行うには3つの方法があります
1 application.properties
ファイルにserver.portプロパティを設定します
server.port = 8090
2 application.yml
ファイルにサーバーポートプロパティを設定します。
server:
port: 8090
3 main
メソッドでプロパティをシステムプロパティとして設定します
System.setProperty("server.port","8090");
デフォルトのポートは8080ですが、以下に示すようにapplication.propertiesでポート番号をカスタマイズできます。
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port = 5050 -- #here we can give any port number.
ブートプロジェクトで作業していて、ポートを設定したい場合は、注記のようにapplication.propertiesファイルに入力を指定できます。プロパティファイルはsrc/main/resourceにあるはずです。
server.port = 9999 CMDを使用している場合は、次のコマンドを実行します。 -Dserver.port = 9999 デフォルトポートの場合はserver.port = 0このポート番号を使用しているポートがないことを確認します。
Gradle Spring Port を検索した場合、この質問は最初の結果になります。
Gradleを使用している場合、Spring Boot Gradle Pluginがすでに適用されていれば、次のようなことができます。
bootRun {
args += ["--server.port=[PORT]"]
}
もっと洗練された答えについては私の答えを見てください ここ 。
コマンド環境でアプリをjarファイルとして実行する場合は、接頭辞として「SERVER_PORT = ***」と入力します。実行する完全なコマンドは以下のようになります。
SERVER_PORT=8080 Java -jar ***.jar
Linuxでバックグラウンドでアプリを実行したい場合は、 'Nohup'を指定したコマンドは次のようになります。
SERVER_PORT=8080 Nohup Java -jar ***.jar &
アプリケーションのプロパティに1行追加する
server.port = 8090
https://stackoverflow.com/a/36865796/1587329 および https://stackoverflow.com/a/40799750/1587329 、 グラドルワンライナー ある
SERVER_PORT=9090 gradle bootRun
" server.port = 8080 "は、実行中のアプリケーションがmainメソッドを通じてjarとして動作している場合にのみ機能します。
Tomcatコンテナを介してこのアプリケーションをwarファイルとして実行している場合、この設定は機能しません。
すべての答えとは別に、ほとんどのIDE(Springプラグインを備えたIntelliJ、STS)には、SpringBootでサポートされているすべての構成キーを提示する機能があります。 (つまり、すべての意見のある構成キーワード)
これは私のために働いた:
カスタムコンテナクラスを追加しました:
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
configurableEmbeddedServletContainer.setPort(8888);
}
}
しかし、これはまだポート8888を使用していませんでした。
それから、私のメインメソッドの "@SpringBootApplication"クラスで、 "scanBasePackages"プロパティをこのように設定します。(scanBasePackages = {"custom container package"})
@SpringBootApplication(scanBasePackages = {"com.javabrains.util"})
public class CourseApiApp {
public static void main (String args []) {
SpringApplication.run(CourseApiApp.class, args);
}
}
そして、カスタムコンテナに設定されているポートを拾い始めました。
春のブートではapplication.properties
ファイルでサービス公開ポートを簡単に設定できます。
server.port=portnumber
特にポートを設定しないと、ポート80
でサービスを開こうとします。すでに使用されている場合は、埋め込みコンテナでサービスは開始されません。
デフォルトでは、Spring Tomcatアプリケーションはデフォルトのポート8080で起動するTomcatサーバーで起動します。springでは、次のようにカスタマイズできます。
_ note _ - あなたは server.port = 0を使うことができます spring bootは私たちのために割り当てられていないhttpランダムポートを見つけます。
1)application.properties
server.port=2020
2)application.yml
server:
port : 2020
3)サーバーポートをプログラム的に変更する
3.1)WebServerFactoryCustomizerインターフェースを実装することで - Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(2020);
}
}
3.2)EmbeddedServletContainerCustomizerインターフェースの実装による - Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(2020);
}
}
4)コマンドラインオプションを使用する
Java -jar spring-boot-app.jar -Dserver.port=2020
私の場合は文を追加する
server.port=${port:8081}
デフォルトのTomcatサーバーポートを上書きします。
あなたのポート番号がランダムになる可能性がある場合は、あなたのapplication.properties
server.port=${random.int(4)}
でrandom関数を使うことができます。
server.port = 0
ランダムポート用
server.port
=カスタム8080ポートの場合は8080
デフォルトのポートは8080ですが、以下に示すようにapplication.propertiesでポート番号をカスタマイズできます。
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port = 5050 -- #here we can give any port number.