在 Spring 引导 .conf 文件中写入多行字符串

Write multi-line string in Spring boot .conf file

对于我的 Spring 启动应用程序,我有一个用于 运行 应用程序的 .conf 文件。 在这个文件中,我放置了一些 jvm 选项。 目前它包含这个:

JAVA_OPTS="-Xms256m -Xmx512m -Dvisualvm.display.name=ApplicationWs -Dcom.sun.management.jmxremote.port=3333 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

以后我一定会加入其他的选项,线会变长。 我想通过逐行编写一个或两个选项来使其更具可读性。但是我找不到合适的语法。

我想做这样的事情:

# Heap Size
JAVA_OPTS="-Xms256m -Xmx512m"

# JVisualVM Name in VisualVM
JAVA_OPTS="$JAVA_OPTS -Dvisualvm.display.name=ApplicationWs"

# Jmx Configuration
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=3333 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

我已经试过了:

JAVA_OPTS="-Xms256m -Xmx512m"
JAVA_OPTS="$JAVA_OPTS -Dvisualvm.display.name=ApplicationWs"
export JAVA_OPTS

JAVA_OPTS="-Xms256m -Xmx512m"
JAVA_OPTS="${JAVA_OPTS} -Dvisualvm.display.name=ApplicationWs"
export JAVA_OPTS

JAVA_OPTS="-Xms256m -Xmx512m 
-Dvisualvm.display.name=ApplicationWs"

JAVA_OPTS="-Xms256m -Xmx512m "
+ " -Dvisualvm.display.name=ApplicationWs"

spring-boot.conf 文件中多行字符串的正确语法是什么?

像这样尝试多行:

primes = 2,\
    3,\
    5,\
    7,\
    11

来自:

Spring 引导启动脚本将使用 shell 作为 .conf 文件的来源,因此您可以使用任何 shell 脚本语法来编写配置。在您的情况下,我更愿意使用 vars 来格式化它们,例如:

MEM_OPTS='-Xms256m -Xmx512m'
DISPLAY_NAME='visualvm.display.name=ApplicationWs'
JMXREMOTE_PORT='com.sun.management.jmxremote.port=3333'
JMXREMOTE_SSL='com.sun.management.jmxremote.ssl=false'
JMXREMOTE_AUTH='com.sun.management.jmxremote.authenticate=false'

JAVA_OPTS="${MEM_OPTS} -D${DISPLAY_NAME} -D${JMXREMOTE_PORT} -D${JMXREMOTE_SSL} -D${JMXREMOTE_AUTH}"

here

唯一有效的方法是传递一行命令,注意末尾的分号和反斜杠:

MEMORY_PARAMS=' -Xms512M -Xmx512M '; \
JMX_MONITORING='-Dcom.sun.management.jmxremote.port=8890 -Dcom.sun.management.jmxremote.rmi.port=8890 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=13.55.666.7777'; \
REMOTE_DEBUG='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8889'; \
JAVA_OPTS=" -Dfile.encoding=UTF-8 ${MEMORY_PARAMS} ${REMOTE_DEBUG} ${JMX_MONITORING} "