2017-05-22 6 views
0

私は春(Mavenを含む)プロジェクトに取り組んでいます。私は私の春のブートバナーをカスタマイズしたい。私のbanner.txtファイルでは、指定されたバナー変数refとJAVA_HOMEのようなシステム環境変数にアクセスできます。スプリングブートアプリケーションの現在のプロセスの環境変数を設定します。

マイbanner.txtファイル

:: Spring Version :: ${spring-boot.formatted-version} 
:: Java Home :: ${JAVA_HOME} 

私は私の春ブーツバナーの私の現在のプロセスからいくつかの詳細情報を表示したいです。だから私は現在のプロセスの環境変数を設定する方法を見つけようとしています。私が$ {JAVA_HOME}のような私のbanner.txtからアクセスできるように。どんな助けもありがとう。

答えて

0

${JAVA_HOME}のような現在のプロセスの変数は、あなたにとってはあまりにも大きいです。

まず考える:.properties

  1. 渡す変数または.ymlファイルMavenのプロパティで
  2. 渡す変数:

    <property>banner url</property>

  3. 渡すコマンドライン引数

    java -jar <argument> <jar>

実行時に、より柔軟な何かをしたい場合は、ドッキングウィンドウデータコンテナを調査することができます。

+0

おかげで、@Sergey Rybalkinは実は、私はマルチモジュールプロジェクトに取り組んでいます。各子モジュールには、同様のフィールド(productTitleなど)がありますが、値は異なります。また、共通のアプリケーションプロパティファイルが1つあります。私のプロジェクトを実行するとき、私は春のブートバナーの中で、同様のフィールド値(明らかに各子モジュールごとに異なる値)を表示する必要があります。だから私は、実行中のプロセスの環境にこれらのフィールド/変数を設定し、私のbanner.txtファイルでそれらを呼び出すだけです。 – neelrotno

+0

私はあなたを完全に理解していないかもしれません。しかし、 '' XX:+ PrintFlagsFinal'でjvm引数を記録するのは簡単です。印刷ブートプロパティも簡単です。あなたの問題は何ですか? –

0

次の例のように、バナーをカスタマイズするBannerインタフェースを実装することができます:environment変数で

public class CustomBanner implements Banner { 
    @Override 
    public void printBanner(Environment environment, Class<?> aClass, PrintStream printStream) { 
     printStream.println("|==================================|"); 
     printStream.println("|----------My Demo Module----------|"); 
     printStream.println("|==================================|"); 
     printStream.println("|>>> Java Home : " + environment.getProperty("JAVA_HOME")); 
     printStream.println("|>>> Process Id : " + ManagementFactory.getRuntimeMXBean().getName()); 
    } 
} 

あなたがJAVA_HOMEとして任意のシステム環境変数を取得することができます。 printStream変数を使用すると、出力をカスタマイズできます。

そして最後に、あなたは、たとえば、あなたのクラスのブートを変更する必要があります。

@SpringBootApplication 
public class DemoApplication { 
    public static void main(String[] args) { 
     SpringApplication app = new SpringApplication(DemoApplication.class); 
     app.setBanner(new CustomBanner()); 
     app.run(args); 
    } 
} 

出力:

|==================================| 
|----------My Demo Module----------| 
|==================================| 
|>>> Java Home : /usr/bin/java 
|>>> Process Id : [email protected] 
関連する問題