若是你使用的是maven来管理项目,执行如下命令既能够java
cd 项目跟目录(和pom.xml同级) mvn clean package ## 或者执行下面的命令 ## 排除测试代码后进行打包 mvn clean package -Dmaven.test.skip=true
打包完成后jar包会生成到target目录下,命名通常是 项目名+版本号.jarspring
启动jar包命令数据库
java -jar target/spring-boot-scheduler-1.0.0.jar
这种方式,只要控制台关闭,服务就不能访问了。下面咱们使用在后台运行的方式来启动:安全
nohup java -jar target/spring-boot-scheduler-1.0.0.jar &
也能够在启动的时候选择读取不一样的配置文件服务器
java -jar app.jar --spring.profiles.active=dev
也能够在启动的时候设置jvm参数app
java -Xms10m -Xmx80m -jar app.jar &
---------我是分割线---------jvm
在应用程序中有不少配置项,例如数据库链接地址、日志文件位置、应用服务器配置等等。为了安全与灵活性,咱们推荐将Spring Boot的配置文件放在生产环境的服务器上,并严格控制访问权限。在运行应用时能够经过命令行参数指定配置文件:maven
java -jar location_of_your_jar_file.jar --spring.config.location=location_of_your_config_file.properties
这样作的好处是:spring-boot
在某些状况下,应用的某些业务逻辑可能须要有不一样的实现。例如邮件服务,假设EmailService中包含的send(String email)方法向指定地址发送电子邮件,可是咱们仅仅但愿在生产环境中才执行真正发送邮件的代码,而开发环境里则不发送以避免向用户发送无心义的垃圾邮件。测试
咱们能够借助Spring的注解@Profile实现这样的功能,这样须要定义两个实现EmailService借口的类:
@Service @Profile("dev") class DevEmailService implements EmailService { public void send(String email) { //Do Nothing } } @Service @Profile("prod") class ProdEmailService implements EmailService { public void send(String email) { //Real Email Service Logic } }
@Profile("dev")代表只有Spring定义的Profile为dev时才会实例化DevEmailService这个类。那么如何设置Profile呢?
在application.properties中加入:
spring.profiles.active=dev
java -jar app.jar --spring.profiles.active=dev