亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

部署Spring Boot應用

2019-11-10 20:04:21
字體:
來源:轉載
供稿:網友

部署SPRing Boot應用

內嵌應用服務器

在使用Maven或Gradle構建Spring Boot應用的過程中,Spring Boot插件提供了巨大的幫助,除了生命各類預定義的依賴,它還能夠構建可以直接運行的jar包——包含了所有的依賴以及內嵌應用服務器。應用的分發也就變得非常簡單,任何人拿到了這個jar包,只需要簡單運行java -jar your.jar就可以啟動應用,無需任何構建工具、安裝過程以及應用服務器。

內嵌應用服務器配置

在生產環境中,應用服務器需要各類配置,Spring Boot本身提供了一種非常簡單的配置機制——application.properties

server.port=8080 # 監聽端口server.address= # 綁定的地址server.session-timeout= #session有效時長server.context-path= #默認為/server.ssl.* #ssl相關配置

Tomcat

默認情況下,Spring Boot啟動的內嵌容器就是Tomcat,對于Tomcat有幾個非常重要的配置:

server.tomcat.basedir=/tmp

tomcat的baseDir,日志、dump等文件都存在于這個目錄中,一般是系統的臨時文件夾/tmp,但也可以按照自己的需求變更位置。

server.tomcat.access-log-pattern= # log pattern of the access logserver.tomcat.access-log-enabled=false # is access logging enabled

這兩個配置打開Tomcat的Access日志,并可以設置日志格式。

Jetty

如果你不喜歡Tomcat,Jetty也是一個非常不錯的選擇。使用Jetty的方式也非常簡單——把tomcat依賴從Maven或Gradle中移除,加入Jetty內嵌容器的依賴:

<dependencies>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <exclusions>      <exclusion>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-tomcat</artifactId>      </exclusion>    </exclusions>  </dependency>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jetty</artifactId>  </dependency><dependencies>

Java EE應用服務器

除了內嵌容器的部署模式,Spring Boot也支持將應用部署至已有的Tomcat容器, 或JBoss, WebLogic等傳統Java EE應用服務器。

以Maven為例,首先需要將<packaging>jar改成war,然后取消spring-boot-maven-plugin,然后修改Application.java

package demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.context.web.SpringBootServletInitializer;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@Configuration@ComponentScan@EnableAutoConfigurationpublic class Application extends SpringBootServletInitializer {    public static void main(String[] args) {        SpringApplication.run(applicationClass, args);    }    @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(applicationClass);    }    private static Class<Application> applicationClass = Application.class;}

接下來打包應用,將生成的war包放入應用服務器目錄即可。

使用外部配置文件

在應用程序中有很多配置項,例如數據庫連接地址、日志文件位置、應用服務器配置等等。為了安全與靈活性,我們推薦將Spring Boot的配置文件放在生產環境的服務器上,并嚴格控制訪問權限。在運行應用時可以通過命令行參數指定配置文件:

java -jar location_of_your_jar_file.jar --spring.config.location=location_of_your_config_file.properties

這樣做的好處是:

配置位于生產環境中,數據庫連接等私密信息不容易泄露靈活性強,同一份代碼(包括構建的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

以服務的形式運行應用

使用java命令運行應用非常簡單,但是通常我們都是通過ssh命令連接到服務器并運行它,一旦ssh連接斷開,那么由它fork的java子進程也就隨之銷毀了。所以我們必須借助工具將應用作為服務運行在服務器上:

Systemd

systemd 是linux 下的一款系統和服務管理器??梢詾镾pring Boot應用編寫啟動腳本:

[Unit]Description=Spring Boot Application[Service]ExecStart=/usr/bin/java -jar location_of_jar_file.jar --spring.config.location=location_of_config.properties --spring.profiles.active=profileUser=${your expected user}[Install]WantedBy=multi-user.target

Supervisord

Supervisord是用Python實現的一款非常實用的進程管理工具??梢詾镾pring Boot應用編寫:

[program:app]command=/usr/bin/java -jar location_of_jar_file.jar --spring.config.location=location_of_config.properties --spring.profiles.active=profileuser=${your expected user}autostart=trueautorestart=truestartsecs=10startretries=3版權聲
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人黄色在线| 亚洲一区二区三区四区视频| 亚洲高清一区二| 一区二区三区四区在线观看视频| 日韩专区中文字幕| 国产精品国产亚洲伊人久久| 91亚洲国产成人精品性色| 日本一区二区在线免费播放| 欧美性色视频在线| 日韩美女视频中文字幕| 国产精品1区2区在线观看| 国产主播欧美精品| 91av在线不卡| 亚洲欧美一区二区三区在线| 色综合天天综合网国产成人网| 最近2019年日本中文免费字幕| 亚洲性生活视频| 欧美韩日一区二区| 色无极影院亚洲| 黑人巨大精品欧美一区免费视频| 国产精品国产福利国产秒拍| 日本电影亚洲天堂| 懂色av影视一区二区三区| 国产成人一区二| www.日韩欧美| 亚洲第一级黄色片| 亚洲第一av网站| 久久人人爽人人爽人人片av高清| 91av在线免费观看视频| 成人夜晚看av| 中文在线不卡视频| 成人av.网址在线网站| 欧美国产日韩一区二区在线观看| 国内偷自视频区视频综合| 欧美美最猛性xxxxxx| 国产精品久久久久影院日本| 国产精品久久久久久五月尺| 日韩免费精品视频| 日韩女在线观看| 亚洲黄色在线看| 影音先锋欧美精品| 久久精品成人一区二区三区| 97热精品视频官网| 国产精品视频最多的网站| 国产裸体写真av一区二区| 久久久久久久999精品视频| 国产精品久久久久久中文字| 久久免费少妇高潮久久精品99| 在线精品国产成人综合| 久久久精品国产| 日韩国产欧美区| 亚洲精品456在线播放狼人| 欧美成人午夜激情视频| 久热精品视频在线观看一区| 欧美电影院免费观看| 亚洲国产精品va在线观看黑人| 国产精品69精品一区二区三区| 视频一区视频二区国产精品| www.欧美视频| 精品露脸国产偷人在视频| 日韩欧美国产高清91| 日韩亚洲精品电影| 国产精品人成电影在线观看| 久久久国产精品x99av| 久久影视三级福利片| 久久影视三级福利片| 91av在线播放视频| 国产日韩在线一区| 成人激情在线播放| 欧美性猛交视频| 久久久久999| 欧洲成人性视频| 亚洲欧美综合精品久久成人| 亚洲精品久久久久久久久久久久久| 欧美激情二区三区| 国产成人精品一区二区| 欧美极品少妇全裸体| 日韩大陆欧美高清视频区| 亚洲人成在线电影| 成人h片在线播放免费网站| 欧美激情在线观看视频| 久久国产精品网站| 黑人巨大精品欧美一区二区免费| 91av视频在线免费观看| 精品少妇v888av| 日本精品久久久久久久| 88xx成人精品| 欧美性猛交丰臀xxxxx网站| 在线一区二区日韩| 日韩精品中文字幕有码专区| 亚洲国产精品热久久| 久久99国产精品自在自在app| 91精品国产自产在线老师啪| 日韩va亚洲va欧洲va国产| 国产精品入口夜色视频大尺度| 久久香蕉精品香蕉| 国产欧美日韩精品在线观看| 久久躁日日躁aaaaxxxx| 成人免费在线网址| 国内精品久久久久久久久| 98精品国产自产在线观看| 青青久久av北条麻妃黑人| 久久亚洲电影天堂| 欧美成人精品激情在线观看| 日韩成人av网址| 69国产精品成人在线播放| 亚洲人免费视频| 中文字幕欧美日韩在线| 第一福利永久视频精品| 国产精品免费小视频| 97成人在线视频| 精品夜色国产国偷在线| 欧美激情精品久久久久久大尺度| 欧美日韩中文字幕综合视频| 国产第一区电影| 国产精品三级在线| 欧美日韩免费区域视频在线观看| 超碰日本道色综合久久综合| 国产精品观看在线亚洲人成网| 91精品国产高清自在线| 91免费综合在线| 一区二区亚洲欧洲国产日韩| 66m—66摸成人免费视频| 亚洲国产精品悠悠久久琪琪| 影音先锋欧美精品| 成人免费观看49www在线观看| 成人在线免费观看视视频| 91香蕉电影院| 日本午夜人人精品| 亚洲国产一区二区三区四区| 欧美夫妻性生活xx| 精品亚洲国产成av人片传媒| www.xxxx欧美| 色偷偷亚洲男人天堂| 色婷婷久久一区二区| 国产精品一区二区久久久| 欧美一级大片在线观看| 亚洲free性xxxx护士白浆| 成人免费高清完整版在线观看| 国产精品中文字幕久久久| 欧美激情亚洲一区| 国产日本欧美一区二区三区| 欧美在线影院在线视频| 国产精品色视频| 国产亚洲综合久久| 欧美怡红院视频一区二区三区| 亚洲精品福利免费在线观看| 色噜噜国产精品视频一区二区| 亚洲一区二区三区毛片| 国产精品电影观看| 日韩av片永久免费网站| 国产精品va在线播放| 欧美国产第二页| 欧美日韩色婷婷| 亚洲国产精品久久精品怡红院| 亚洲精品网站在线播放gif| 欧美激情xxxxx| 国产亚洲aⅴaaaaaa毛片| 亚洲第一免费播放区| 日韩人在线观看| 18一19gay欧美视频网站| 日韩av日韩在线观看| 日韩电视剧在线观看免费网站| 欧美精品在线免费观看|