Java 在spring引导应用程序中为当前进程设置环境变量
我正在从事一个spring(与maven合作)项目。我想定制我的春季战靴横幅。在我的banner.txt文件中,我可以访问一些指定的banner变量以及系统环境变量,如JAVA_HOME 我的banner.txt文件Java 在spring引导应用程序中为当前进程设置环境变量,java,spring,maven,spring-boot,environment-variables,Java,Spring,Maven,Spring Boot,Environment Variables,我正在从事一个spring(与maven合作)项目。我想定制我的春季战靴横幅。在我的banner.txt文件中,我可以访问一些指定的banner变量以及系统环境变量,如JAVA_HOME 我的banner.txt文件 :: Spring Version :: ${spring-boot.formatted-version} :: Java Home :: ${JAVA_HOME} 我想在我的spring boot横幅中显示我当前进程的更多信息。因此,我试图找到一种方法,为当前流程的环境设置一些
:: Spring Version :: ${spring-boot.formatted-version}
:: Java Home :: ${JAVA_HOME}
我想在我的spring boot横幅中显示我当前进程的更多信息。因此,我试图找到一种方法,为当前流程的环境设置一些变量。这样我就可以从banner.txt访问它们,比如${JAVA_HOME}。任何帮助都将不胜感激。当前流程的变量,如
${JAVA_HOME}
对于您的案例来说太多了
首先想想:
.properties
或.yml
文件中传递变量横幅url
java-jar
如果您希望在运行时更灵活,您可以调查docker数据容器。您可以实现
横幅
界面来自定义横幅,例如:
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());
}
}
@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 : 14548@Juans-MacBook-Pro.local
谢谢,@Sergey Rybalkin实际上,我正在做一个多模块项目。每个子模块都有一些类似的字段(如productTitle),但值不同。我有一个通用的应用程序属性文件。当我运行我的项目时,我想在我的spring引导横幅中显示类似的字段值(每个子模块的值明显不同)。因此,我只想将这些字段/变量设置为正在运行的进程的环境,并在banner.txt文件中调用它们。也许我不完全理解您的意思。但是使用
XX:+PrintFlagsFinal
记录jvm参数很简单。打印引导属性也很简单。你有什么问题?