SpringBoot Learning (04): Ideaで起動コマンドを制御するための詳細なプロセス環境区別の事例

SpringBootを起動するIDEAコマンド

C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe 
-XX:TieredStopAtLevel=1 
-Dspring.output.ansi.enabled=always 
-Dcom.sun.management.jmxremote 
-Dspring.jmx.enabled=true 
-Dspring.liveBeansView.mbeanDomain 
-Dspring.application.admin.enabled=true "
-Dmanagement.endpoints.jmx.exposure.include=*" 
"-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin" 
-Dfile.encoding=UTF-8 
-classpath E:\JavaProjects\first-spring-boot\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.1.2\spring-boot-starter-web-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\3.1.2\spring-boot-starter-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\3.1.2\spring-boot-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.1.2\spring-boot-autoconfigure-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.1.2\spring-boot-starter-logging-3.1.2.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.4.8\logback-classic-1.4.8.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.4.8\logback-core-1.4.8.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.20.0\log4j-to-slf4j-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.20.0\log4j-api-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\2.0.7\jul-to-slf4j-2.0.7.jar;C:\Users\Administrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.33\snakeyaml-1.33.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.1.2\spring-boot-starter-json-3.1.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.15.2\jackson-databind-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.15.2\jackson-annotations-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.15.2\jackson-core-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.15.2\jackson-datatype-jdk8-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.15.2\jackson-datatype-jsr310-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.15.2\jackson-module-parameter-names-2.15.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.1.2\spring-boot-starter-tomcat-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.11\tomcat-embed-core-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.11\tomcat-embed-el-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.11\tomcat-embed-websocket-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-web\6.0.11\spring-web-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\6.0.11\spring-beans-6.0.11.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-observation\1.11.2\micrometer-observation-1.11.2.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-commons\1.11.2\micrometer-commons-1.11.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-webmvc\6.0.11\spring-webmvc-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\6.0.11\spring-aop-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\6.0.11\spring-context-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\6.0.11\spring-expression-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\2.0.7\slf4j-api-2.0.7.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\6.0.11\spring-core-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jcl\6.0.11\spring-jcl-6.0.11.jar 
com.zing.firstspringboot.FirstSpringBootApplication

このコードは、Spring Boot アプリケーションを実行するための Java 起動コマンドです。各部分の意味を詳しく説明します。

  1. C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe: これは Java 実行可能パスで、Amazon Corretto バージョン 17 の Java を使用してアプリケーションを実行していることを示します。

  2. -XX:TieredStopAtLevel=1: これは、JIT コンパイル段階を制御するために使用される Java 仮想マシンのパラメータです。ここでは、JIT コンパイルを第 1 レベルに制限します。

  3. -Dspring.output.ansi.enabled=always: ANSI カラーを使用するように Spring 出力を設定します。

  4. -Dcom.sun.management.jmxremote: Java リモート管理を有効にします。

  5. -Dspring.jmx.enabled=true: Spring JMX(Java Management Extensions)を使用します。

  6. -Dspring.liveBeansView.mbeanDomain: Spring Live Beans ViewのMBeanドメインを設定します。

  7. -Dspring.application.admin.enabled=true: Spring アプリケーション管理を有効にします。

  8. "-Dmanagement.endpoints.jmx.exposure.include=*": どの管理エンドポイントを JMX で公開するかを構成します。

  9. "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin": IntelliJ IDEA 用に Java エージェントを構成します。

  10. -Dfile.encoding=UTF-8:ファイルのエンコードをUTF-8に設定します。

  11. -classpath: アプリケーションのクラス ファイルとさまざまな依存関係を含むクラスパスを設定します。

  12. com.zing.firstspringboot.FirstSpringBootApplication: これは Spring Boot アプリケーションのエントリ クラスの完全修飾名で、Java 仮想マシンにどのクラスから実行を開始するかを指示するために使用されます。

-Dspring.output.ansi.enabled=always このような受信パラメータ、コード内での取得方法

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    @Value("${spring.output.ansi.enabled}")
    private String ansiEnabled;

    // 省略其他代码
}

IDEA 独自の実行/デバッグ構成を使用して開始します

  1. この他の弱い型指定言語を使用する人はほとんどいませんが、弱い型指定言語のほとんどの開発者は、強い型指定言語から弱い型指定言語に切り替えるプロセスを経験していないため、デバッグには興味がありません。
  2. JavaScript を長期間使用しているフロントエンドの学生の多くは、Google Chrome devtools でデバッグせず、コール スタックを確認しません。代わりに、console.log メソッドを使用してデバッグします。IDEA のデバッグを使用して、Webpack パッケージ化プロセスをデバッグします。これは、Webpack のパッケージ化プロセスを迅速に習得するのに役立ちます。
  3. ほとんどの PHP 開発者は、リモート デバッグが何であるかを知りません。この概念を打ち破ることができれば、彼らは基本的に上級プログラマです。弱い型指定言語の場合、デバッグや型ヒントなしでプログラムを理解することは困難です。
  4. 弱い型付け言語の開発者がデバッグを好まない理由は、主流のチュートリアルがそれを教えていないためであり、2 番目の理由は、それらが自虐的であるためです。単純なプログラミングが好きで、より深い知識を学びたくないため、チェーンを軽蔑し、チェーンも始まりましたが、後の段階では軽蔑の言語に変わりました。
  5. Run/Debug が実行されると、実行コンソールに対応する実行スクリプトがあることがわかります。これらのスクリプト パラメーターは、人間が手動で入力することは考えられません。これは、上記の SpringBoot を起動する IDEA コマンドを参照することで確認できます。これらのパラメーターを使用しないでください 。 これらを理解すると、ソース コードの役割をより早く、直感的に、簡素化して、整理して理解できるようになります。
Windows でのバージョン 2021 の IDEA 構成インターフェイス

2022 バージョンのインターフェイスでは、[オプションの変更] をクリックして VM オプション列を追加します。

これは、Mac でスクリプト ファイルを右クリックして Debug を呼び出す入り口のスクリーンショットです。
IDEA の実行/デバッグのスクリーンショット
これは、Mac での phpstorm 実行/デバッグ編集構成への入り口のスクリーンショットです。

Windows IDEA 2022 構成ページのスクリーンショット

-Dspring.output.ansi.enabled=always この種の受信パラメータ、コード内での取得方法

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    @Value("${spring.output.ansi.enabled}")
    private String ansiEnabled;

    // 省略其他代码
}

さまざまな環境ケースを jar パッケージとして開始する

アイデアの組み込み Maven 検索と構成

Maven を設定するには 2 つの方法があります

  1. mavenをダウンロードするための  チュートリアルはたくさんあるので、ここでは詳しく説明しません。
  2. Idea の Maven を直接使用して構成します。アイデアの Maven 構成は次のとおりです。Idea の組み込み Maven3 パスはすべてを通じて見つける必要があります。mvn を検索すると、プラグインへのパスが見つかります。Maven は IDEA のプラグインとして使用されるため、複数の Maven バージョンをダウンロードすることはできません。実際にプロジェクトを作成するときに、Maven バージョンを選択することはできません。右クリックしてパスを開きます。

上記のパスをコピーし、環境変数に設定します。

MAVEN_HOME の使い方はとても良いです。MVN のバージョンをとても便利に切り替えることができます。今後 Maven のバージョンを変更するときに、Path に行って設定し直す必要がなく、とても便利です。私はしませんでした。これまではあまり注意を払いませんでした。

JAVA_HOME がローカルに構成されていない場合、mvn --version を実行すると、JAVA_HOME パスが見つからず、powershell コンソールで mvn コマンドが見つからないというメッセージが表示されます。JAVA_HOME を設定した後、powershell は mvn も認識できますが、これは非常に奇妙なことです。 mvn を実行するには Java 環境が必要であることは一時的に理解しましたが、ここではアイデアに付属の jdk-17 を使用します。

ユーザー変数とシステム変数の両方が設定されている

springbootをjarパッケージにしてcmdで起動し、起動環境を設定する

次に、jar ファイルを選択し、右クリックしてパネルを開き、「エクスプローラーで表示」を選択してファイルの場所にジャンプします。

パスバーに cmd と入力し、Enter をクリックして cmd で直接開きます

次のコマンドを入力して開発環境を開始します

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

 Python/PHP の考え方 SpringBoot シリーズの探索

学習知識はすべてつながっています。これまでに調べたことを見てみましょう。

  1. SpringBoot 学習 (01): javac、src/main/java ディレクトリ、Maven および pip 弱い型付け言語にはサブモジュールのコンパイルがないのはなぜですか_Senye のブログ - CSDN ブログ
  2. SpringBoot 学習 (02): 組み込みシステムから組み込みサーブレットへの進化の道 SpingBoot_Sen Ye のブログ-CSDN ブログ
  3.  SpringBoot 学習 (03): 弱い言語アノテーションと SpringBoot アノテーションの類似点と相違点 - 森 Ye のブログ - CSDN ブログ

おすすめ

転載: blog.csdn.net/wangsenling/article/details/132395252