spring boot的两种部署方式

spring boot的两种部署方式

前言

springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。

前后端分离现如今为主流架构,springboot构建web应用,可以快速的打成jar包然后启动服务。

此外,springboot还可以打成war包,在外部tomcat上部署服务,此时,项目内若存在applcation.properties配置的server.port将不起作用。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。

一、jar包部署

1.idea打开创建好的springboot工程,在maven中使用package打包(springboot工程默认打成jar)
在这里插入图片描述
2.在target中找到打包好的jar包目录,打开cmd,使用命令行: java -jar 跟上jar包名称
在这里插入图片描述

3.注意pom中设置的项目的jdk版本和本地环境的jdk版本需要一致

   <properties>
        <java.version>1.8</java.version>
    </properties>

4.启动成功即可测试(测试访问性,这里代码随意)
在这里插入图片描述
在这里插入图片描述

二、war包部署

一般情况下,将springboot工程打包为war分为以下几个步骤:
1.修改pom.xml,将打包方式设置为war 修改jar为war

 <packaging>war</packaging>

2.移除springboot默认的tomcat配置,移除默认的spring-boot-starter-tomcat,使用provided

<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-tomcat</artifactId> 
        <scope>provided</scope> 
</dependency>

3.添加tomcat-servelt-api依赖

*注意根据自己的情况修改version

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>tomcat-servlet-api</artifactId> 
      <version>8.0.36</version> 
      <scope>provided</scope> 
</dependency>

4.改造启动类,核心启动类 继承SpringBootServletInitializer,并重写configure方法

@SpringBootApplication
public class SpringbootMapperscanApplication  extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootMapperscanApplication.class, args);
	}

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(SpringbootMapperscanApplication.class);
	}

}

5.添加打包插件
在pom.xml的build > plugins 中添加打包插件,可以指定打包的名称等配置

      <plugin>
     	<groupId>org.apache.maven.plugins</groupId>
      	<artifactId>maven-war-plugin</artifactId>
      	<configuration>
          <warSourceExcludes>src/main/resources/**</warSourceExcludes>
          	<warName>cjzdtlj</warName>
          	<failOnMissingWebXml>false</failOnMissingWebXml>
      	</configuration>
     </plugin>

6.在IDE的命令行使用mvn clean命令清除旧的包,并使用mvn package生成新的war包
在这里插入图片描述

jar包和war包方式对比

  • 打jar包时不会把src/main/webapp下的内容打到jar包里,而打war包会
  • 提供rest服务的项目需打成jar包,而又大量css、js、html而且需要经常改动的项目,打成jar包运行比较方便,因为改动静态资源可以直接覆盖,很快看到改动后的效果
  • 个人觉得打包成jar包比war要方便的多
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一种快速开发的框架,它可以帮助开发者快速构建基于 Spring 的企业级应用程序。而 Docker 是一种容器化技术,它可以让开发者将应用程序和其依赖的环境打包成一个独立的“容器”,并且可以在不同的环境中运行。在本文中,我们将介绍如何在 Docker 中安装和部署 Spring Boot 应用程序。 1. 准备工作 在开始之前,我们需要安装 Docker 和 Docker Compose。Docker 可以在官网上下载,而 Docker Compose 的安装方法可以在官网上查找。 2. 编写 Dockerfile 在 Docker 中,我们需要编写一个 Dockerfile 文件来描述我们要打包的应用程序和环境。在本例中,我们需要安装 Java 和 Spring Boot,因此我们需要从 Docker Hub 上拉取 Java 和 Spring Boot 的镜像。Dockerfile 文件内容如下: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 3. 构建镜像 在 Dockerfile 文件所在的目录下,我们可以使用以下命令来构建 Docker 镜像: ``` docker build -t my-spring-boot-app . ``` -t 参数用于指定镜像名称和标签,. 表示当前目录下的 Dockerfile 文件。该命令会自动下载所需的镜像,并构建我们的应用程序。 4. 运行容器 构建完成后,我们可以使用以下命令来运行容器: ``` docker run -p 8080:8080 my-spring-boot-app ``` -p 参数用于将容器端口映射到主机端口,my-spring-boot-app 是我们之前构建的镜像名称。该命令会启动容器,并将容器中的应用程序映射到主机的 8080 端口上。 5. 使用 Docker Compose 部署多个容器 如果我们需要部署多个容器,我们可以使用 Docker Compose 来管理这些容器。在项目根目录下,我们可以编写一个 docker-compose.yml 文件来描述我们要部署的容器。该文件内容如下: ``` version: '3' services: app: build: . ports: - "8080:8080" volumes: - ./target:/app/target nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - app ``` 该文件定义了两个服务,一个是我们之前构建的 Spring Boot 应用程序,另一个是 Nginx 服务器。Docker Compose 会自动拉取所需的镜像,并启动容器。 6. 启动容器 在项目根目录下,我们可以使用以下命令来启动容器: ``` docker-compose up ``` 该命令会启动所有定义的容器,并将它们连接起来。 通过以上步骤,我们就可以在 Docker 中成功安装和部署 Spring Boot 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值