舉個例子:java
$JAVA_ARGS.=「-Dresin.home=$SERVER_ROOT-server -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M -XX:MaxPermSize=256M-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19 -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails -XX:+PrintGCTimeStamps-XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0」
這是JVM參數調優時候的一些配置spring
java的System.getProperty()方法默承認以獲取的值:apache
| Key | Value|架構
| Java.version | Java 運行時環境版本|jvm
| java.vendor | Java 運行時環境供應商 |maven
|java.vendor.url|Java 供應商的 URL|spring-boot
|java.home|Java 安裝目錄|ui
|java.vm.specification.version|Java 虛擬機規範版本|url
|java.vm.specification.vendor|Java 虛擬機規範供應商|操作系統
|java.vm.specification.name|Java 虛擬機規範名稱|
|java.vm.version|Java 虛擬機實現版本|
|java.vm.vendor|Java 虛擬機實現供應商|
|java.vm.name|Java 虛擬機實現名稱|
|java.specification.version|Java 運行時環境規範版本|
|java.specification.vendor|Java 運行時環境規範供應商|
|java.specification.name|Java 運行時環境規範名稱|
|java.class.version|Java 類格式版本號|
|java.class.path|Java 類路徑|
|java.library.path|加載庫時搜索的路徑列表|
|java.io.tmpdir|默認的臨時文件路徑|
|java.compiler|要使用的 JIT 編譯器的名稱|
|java.ext.dirs|一個或多個擴展目錄的路徑|
|os.name|操做系統的名稱|
|os.arch|操做系統的架構|
|os.version|操做系統的版本|
|file.separator|文件分隔符(在 UNIX 系統中是「/」)|
|path.separator|路徑分隔符(在 UNIX 系統中是「:」)|
|line.separator|行分隔符(在 UNIX 系統中是「/n」)|
|user.name|用戶的帳戶名稱|
|user.home|用戶的主目錄|
|user.dir|用戶的當前工做目錄|
public class AutoKeyConfig { public static final String AUTOKEY_PORT = "sword.autokey.port"; public static final int PORT_DEFAULT = 8204; }
實現代碼:
String portStr = SwordConfigLoader.getProperty(AutoKeyConfig.AUTOKEY_PORT); int port = portStr != null ? Integer.parseInt(portStr) : AutoKeyConfig.PORT_DEFAULT;
<build> <sourceDirectory>src/main/scala</sourceDirectory> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <configuration> <launchers> <launcher> <id>pdata</id> <mainClass>com.pdata.PDataApplication</mainClass> <!-- args are optional --> <!--<args>--> <!--<arg>arg1</arg>--> <!--</args>--> <!-- jvmArgs are optional --> <jvmArgs> <jvmArg>-Xmx1024m</jvmArg> <jvmArg>-Dsword.autokey.port=9202</jvmArg> </jvmArgs> </launcher> <!-- you could define other launcher --> </launchers> </configuration> <executions> <execution> <id>compile-and-test-compile</id> <goals> <goal>compile</goal> <goal>testCompile</goal> <goal>run</goal> </goals> </execution> <execution> <id>doc</id> <phase>install</phase> <goals> <goal>doc</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> <configuration> <includeScope>system</includeScope> <!--<outputDirectory>${project.build.directory}/${project.build.finalName}/lib</outputDirectory>--> </configuration> </plugin> </plugins> </build>
這樣,就能夠直接使用以下命令動態注入sword.autokey.prot的值, 啓動應用:
mvn scala:run -Dlauncher=pdata