Spring Boot 部署

打成jar包

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

  • 配置位於生產環境中,數據庫鏈接等私密信息不容易泄露
  • 靈活性強,同一份代碼(包括構建的jar包)能夠應用於不一樣的環境配置(開發、測試、生產)

使用Profile區分環境

在某些狀況下,應用的某些業務邏輯可能須要有不一樣的實現。例如郵件服務,假設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
相關文章
相關標籤/搜索