加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

猜你不知道Spring Boot的几种部署方式

发布时间:2019-07-24 12:40:16 所属栏目:移动互联 来源:Java架构笔记
导读:弁言 本文首要讲的是spring boot的五种陈设方法,内里是否有你不知道的呢,假若有接待评述留言哦,一路交换切磋哦!!! 可以行使各类要领将Spring Boot应用措施陈设到出产体系中。在本文中,我们将通过以下5种要领慢慢陈设Spring Boot应用措施: 在Java A
副问题[/!--empirenews.page--]

弁言

本文首要讲的是spring boot的五种陈设方法,内里是否有你不知道的呢,假若有接待评述留言哦,一路交换切磋哦!!!

可以行使各类要领将Spring Boot应用措施陈设到出产体系中。在本文中,我们将通过以下5种要领慢慢陈设Spring Boot应用措施:

  1. 在Java Archive(JAR)中作为独立应用措施举办陈设,
  2. 将Web应用措施存档(WAR)陈设到servlet容器中,
  3. 在Docker Container中陈设,
  4. 在NGINX Web处事器后头陈设 - 直接配置,
  5. 陈设在NGINX Web处事器后头 - 容器化配置。

在Java Archive(JAR)中作为独立应用措施举办陈设

Spring Boot应用措施可以轻松打包到JAR文件中,并作为独立应用措施举办陈设。这是由spring-boot-maven-plugin完成的。一旦Spring项目通过Spring Initializr建设为Maven项目,插件就会自动添加到pom.xml中。

  1. <build>  
  2.  <plugins>  
  3.  <plugin>  
  4.  <groupId> org.springframework.boot </ groupId>  
  5.  <artifactId> spring-boot-maven-plugin </ artifactId>  
  6.  </ plugin>  
  7.  </ plugins>  
  8. </ build> 

要将应用措施打包在单个(胖)jar文件中,请mvn package在项目目次下运行maven呼吁。这将把应用措施打包到一个可执行的jar文件中,该文件包括全部依靠项(包罗嵌入式servlet容器 - 假如它是一个Web应用措施)。要运行jar文件,请行使以下尺度JVM呼吁:

  1. java -jar <jar-file-name>.jar 

将Web应用措施存档(WAR)陈设到servlet容器中

可以将Spring Boot应用措施打包到WAR文件中,以陈设到现有的servlet容器(譬喻Tomcat,Jetty等)中。这可以按如下方法完成:

通过pom.xml文件指定WAR包<packaging>war</packaging>。这会将应用措施打包成WAR文件(而不是JAR)。在第二步,将Tomcat(servlet容器)依靠相关的范畴配置为provided(以便它不会陈设到WAR文件中):

  1. <dependency> 
  2.  <groupId>org.springframework.boot</groupId> 
  3.  <artifactId>spring-boot-starter-tomcat</artifactId 
  4.  <scope>provided</scope> 
  5. </dependency> 

通过扩展SpringBootServletInitializer并包围configure要领来初始化Tomcat所需的Servlet上下文,如下所示:

  1. @SpringBootApplication 
  2. public class DemoApp extends SpringBootServletInitializer { 
  3.  @Override 
  4.  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 
  5.  return builder.sources(DemoApp.class); 
  6.  } 
  7.  public static void main(String[] args) { 
  8.  SpringApplication.run(DemoApp.class, args); 
  9.  } 

要将应用措施打包到war文件中,请mvn clean package在项目目次下运行尺度maven呼吁。这将天生可以陈设到servlet容器中的WAR包。要在现有Tomcat容器中运行应用措施,请将天生的WAR文件复制到tomcat/webapps/目次。

在Docker Container中陈设

在将应用措施陈设到Docker容器之前,我们起首将应用措施打包在(胖)JAR文件中。之前已经表明白这个进程,因此我假设我们有一个jar文件。

在第一步,我们必要构建一个容器镜像。为此,我们起首在项目根目次中建设一个Dockerfile,如下所示:

  1. # latest oracle openjdk is the basis 
  2. FROM openjdk:oracle 
  3. # copy jar file into container image under app directory 
  4. COPY target/demoApp.jar app/demoApp.jar 
  5. # expose server port accept connections 
  6. EXPOSE 8080 
  7. # start application 
  8. CMD ["java", "-jar", "app/demoApp.jar"] 

请留意,在上面的代码片断中,我们假设应用措施JAR文件“ demoApp.jar”位于项目标方针目次下。我们还假设嵌入式servlet端口是8080(这是Tomcat的默认环境)。

我们此刻可以行使以下呼吁构建Docker镜像(Dockerfile地址的位置):

  1. docker image build -t demo-app:latest . 

-t是要构建的镜像的名称和标志。构建镜像后,我们可以通过以下方法建设和运行容器:

  1. docker container run -p 8080:8080 -d --name app-container demo-app 

-p是宣布(映射)主机端口到容器端口(在这种环境下,两个都是8080)。选项-d(detach)指定在靠山运行容器,并用--name指定容器的名称。

陈设在NGINX Web处事器后头 - 直接配置

为现实出产设置servlet容器(譬喻Tomcat或Jetty)(即在端口80上运行,没有root用户和行使SSL)也许不是直接的(但可行)。此,提议在Spring Boot应用措施前行使Web处事器(如Nginx)。这可以通过两种方法完成; 直接配置或Docker配置。在本节中,我们将演示直接配置。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读