咱们都知道,SpringBoot框架最吸引人的地方之一就是他针对各类框架组件集成都提供了缺省的配置,“零配置”集成和开发是它的终极目标。理论上你不作任何特殊配置,均可以启动项目。java
若是你用SpringBoot用于web项目开发,那么他就已经内嵌了web容器,无需你单独部署到tomcat或者jetty等容器中,打包成jar包便可运行,省去了反锁的打包部署流程。默认状况下,由SpringBoot启动的web项目,默认端口是8080,这也是tomcat或jetty的默认端口。那么问题来了,我要改端口怎么办,这是必然会遇到的问题。web
还记得运行SpringBoot项目时,须要编写的main方法吗,当时的代码是这样的:redis
@SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class, args); } }
注意,这是一个main方法,动态传入启动参数,这跟普通运行一个java程序没什么区别。args就是他的启动参数,它是一个数组,能够带一个或多个参数。
那这个参数是用来作什么的?既然springboot默认作好了大部分的配置,那么要修改这些配置,就是经过传入main方法执行的参数将覆盖框架自动为你作好的配置。spring
好比,你能够用以下的相似代码,来修改你启动项目的端口:数组
java -jar xxx.jar --server.port=8888
再好比,你能够以下的相似代码,来修改你启动的项目在控制台输出的logo,tomcat
java -jar xxx.jar --spring.banner.location=classpath:banner.txt
最终的效果也就是把启动时,你常常看到的这个
springboot
替换成了这个:
微信
诸如此类,还能够定制其余不少默认设置,固然有些须要在pom文件中添加相应的模块依赖,才能使用相应的功能。好比你用到了redis,那么你须要添加
spring-boot-starter-data-redis来把redis的默认设置先加载进来,在这基础上,你就能够编写定制参数,好比:框架
java -jar xxx.jar --spring.redis.port=6379
注意,命令的格式是:eclipse
#参数须要跟在jar包名称以后以--开头 java -jar xxx.jar --参数名=参数值
你也能够在运行时,同时添加多个定制参数(以空格隔开),好比把上述几个例子合并起来就是:
java -jar xxx.jar --server.port=8888 --spring.banner.location=classpath:banner.txt --spring.redis.port=6379
理论上,能支持定制的参数,均可以添加。
附带说一句,用IDEA或者Myeclipse这样的IDE帮你运行项目的时候,其原理也是如此。
那么,如今就有两个问题出现了。
一、我怎么知道springboot支持哪些定制参数?
二、这么多参数,都写到运行命令上吗?那样岂不是会显得很臃肿,貌似一点都不优雅?
这两个问题,留到下次再谈。
关注弈码当先微信公众号获取更多干货
本文由 弈码当先 www.root1024.com 独家发布!