若是你使用的是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