PropertiesLauncher 功能

PropertiesLauncher 具备若干特殊功能,可通过外部属性(系统属性、环境变量、清单文件条目或 loader.properties)启用。 下表描述了这些属性:spring-doc.cadn.net.cn

目的

loader.pathspring-doc.cadn.net.cn

以逗号分隔的类路径,例如 lib,${HOME}/app/lib。 靠前的条目具有更高优先级,类似于在 javac 命令行上指定的常规 -classpathspring-doc.cadn.net.cn

loader.homespring-doc.cadn.net.cn

用于解析 loader.path 中的相对路径。 例如,给定 loader.path=lib,则 ${loader.home}/lib 是一个类路径位置(同时包含该目录下的所有 JAR 文件)。 此属性还用于定位 loader.properties 文件,如以下示例 /opt/app 所示。其默认值为 ${user.dir}spring-doc.cadn.net.cn

loader.argsspring-doc.cadn.net.cn

主方法的默认参数(以空格分隔)。spring-doc.cadn.net.cn

loader.mainspring-doc.cadn.net.cn

要启动的主类名称(例如,com.app.Application)。spring-doc.cadn.net.cn

loader.config.namespring-doc.cadn.net.cn

属性文件的名称(例如,launcher)。 默认为 loaderspring-doc.cadn.net.cn

loader.config.locationspring-doc.cadn.net.cn

属性文件的路径(例如,classpath:loader.properties)。 默认为 loader.propertiesspring-doc.cadn.net.cn

loader.systemspring-doc.cadn.net.cn

一个布尔标志,用于指示是否将所有属性添加到系统属性中。 其默认值为 falsespring-doc.cadn.net.cn

当作为环境变量或清单条目指定时,应使用以下名称:spring-doc.cadn.net.cn

清单条目 环境变量

loader.pathspring-doc.cadn.net.cn

Loader-Pathspring-doc.cadn.net.cn

LOADER_PATHspring-doc.cadn.net.cn

loader.homespring-doc.cadn.net.cn

Loader-Homespring-doc.cadn.net.cn

LOADER_HOMEspring-doc.cadn.net.cn

loader.argsspring-doc.cadn.net.cn

Loader-Argsspring-doc.cadn.net.cn

LOADER_ARGSspring-doc.cadn.net.cn

loader.mainspring-doc.cadn.net.cn

Start-Classspring-doc.cadn.net.cn

LOADER_MAINspring-doc.cadn.net.cn

loader.config.locationspring-doc.cadn.net.cn

Loader-Config-Locationspring-doc.cadn.net.cn

LOADER_CONFIG_LOCATIONspring-doc.cadn.net.cn

loader.systemspring-doc.cadn.net.cn

Loader-Systemspring-doc.cadn.net.cn

LOADER_SYSTEMspring-doc.cadn.net.cn

构建插件在生成胖 JAR(uber jar)时会自动将 Main-Class 属性移至 Start-Class。 若使用该功能,请通过 Main-Class 属性指定要启动的类名,并省略 Start-Class

以下规则适用于使用 PropertiesLauncherspring-doc.cadn.net.cn

  • loader.home 中搜索 loader.properties,然后在类路径(classpath)的根目录下搜索,最后在 classpath:/BOOT-INF/classes 中搜索。 使用最先找到该名称文件的位置。spring-doc.cadn.net.cn

  • loader.home 是额外属性文件的目录位置(用于覆盖默认配置),仅当未指定 loader.config.location 时生效。spring-doc.cadn.net.cn

  • loader.path 可以包含目录(这些目录将被递归扫描以查找 JAR 和 ZIP 文件)、归档路径、归档内用于扫描 JAR 文件的目录(例如 dependencies.jar!/lib),或通配符模式(遵循 JVM 默认行为)。 归档路径可以相对于 loader.home,也可以是文件系统中任意位置的路径,但需以 jar:file: 为前缀。spring-doc.cadn.net.cn

  • loader.path(若为空)默认为 BOOT-INF/lib(表示一个本地目录,或在从归档文件中运行时为嵌套目录)。 因此,在未提供额外配置的情况下,PropertiesLauncher 的行为与 JarLauncher 相同。spring-doc.cadn.net.cn

  • loader.path 不能用于配置 loader.properties 的位置(当通过 PropertiesLauncher 启动时,用于搜索后者的类路径是 JVM 类路径)。spring-doc.cadn.net.cn

  • 占位符替换会在使用前,从系统变量、环境变量以及属性文件本身中对所有值进行。spring-doc.cadn.net.cn

  • 属性的搜索顺序(在多个位置查找有意义时)为:环境变量、系统属性、loader.properties、解压归档文件的清单(manifest)以及归档文件的清单(manifest)。spring-doc.cadn.net.cn