在每一个学习Java的同学,都应该写过下面的这一段代码。
1 | public class Hello{ |
在Java语言中,规定了入口函数是一个main()
方法,该方法有一个String[]
类型的参数,但是在很多时候,很多人都使用不上这个参数,也不关心为什么要写这个参数。
那么这个字符串数组类型的参数究竟是什么东西呢?
其实很简单,main()方法中的字符串数组类型的参数就是java命令的参数,使用java命令的方式运行main()方法,会将java命令的参数入参到Java main()方法的字符串数组参数中。
我们可以通过以下方式来进行验证:
- 1、先编写一个Hello.java文件,文件内容如下:
1 | public class Hello{ |
2、在
Hello.java
文件的路径下打开cmd命令提示符,运行javac Hello.java
命令编译该文件,这将会在对应的文件路径下,得到一个Hello.class
字节码文件。3、使用
java Hello
命令运行Hello.class文件,我们将会得到如下的运行结果:- 4、我们这次在java命令后面添加一些参数,这些参数我们可以自己定义。
例如:java Hello a b c d
,我们将会得到如下的运行结果:正是因为Java main()方法的这个扩展性,使得每一个开发者,可以通过自己定义一些Java命令的参数,实现一些不同的功能。
- 4、我们这次在java命令后面添加一些参数,这些参数我们可以自己定义。
其中SpringBoot的启动类,其实也使用了这个特性,SpringApplication.run()方法有一个重载方法,其中第一个入参的是注解了@SpringBootApplication
注解的类的字节码对象,而第二个参数,即为main()方法的字符串数组参数。
SpringBoot可以通过这个字符串数组参数,通过java
命令参数的方式,在不同的环境下实现不同的应用配置。
1 |
|