springboot默認啟動入口函數是支持接收參數,並且在整個應用程序內部也可以獲取到這些參數,並且如果傳遞的參數是一些內部定義的參數將會被映射到springboot內部配置項,從而達到配置效果。
springboot入口參數傳遞與獲取:
方式1)springboot 配置項目啟動傳遞參數:
a)在idea導航Run->Edit Configuration...
b)Edit Configuration...下設置啟動參數:
c)修改SpringBoot啟動入口函數:
package app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import java.util.Arrays; @ComponentScan("com.dx.controller") @EnableAutoConfiguration public class App { public static void main(String[] args) { System.out.println(Arrays.toString(args)); SpringApplication.run(App.class, args); } }
d)在HelloWordController.java類中通過ApplicationArguments獲取入口參數:
package com.dx.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class HelloWordController { @Autowired private ApplicationArguments applicationArguments; @RequestMapping(value = "/index", method = RequestMethod.GET) public String index() { System.out.println(applicationArguments.getNonOptionArgs()); System.out.println("index is running..."); return "welcome"; } }
e)啟動時,參看打印信息:
f)在瀏覽器中訪問http://localhost:8888/index,查看打印輸出信息:
方式2)springboot jar包運行時傳遞參數:
a)通過maven打包項目為jar包;
b)cmd中運行java -jar xxx.jar username=root password=pwd;
c)查看啟動信息;
d)瀏覽器訪問http://localhsot:8888/index,查看cmd屏幕輸出信息。
springboot傳遞系統內部定義配置參數:
1)修改上述參數"username=root password=pwd"為"spring.config.name=application888 username=root password=pwd"
2)此時在src下、src\resources、src\resources\config其中任意目錄下添加application888.properties 文件,並修改內容為:
server.port=8880
,此時啟動項目,將會發現啟動端口已經發生變更,變更為8880端口。