首页 > 其他分享 >Spring Boot 两种部署到服务器的方式

Spring Boot 两种部署到服务器的方式

时间:2022-09-21 09:44:39浏览次数:75  
标签:tomcat spring boot jar 端口 Boot Spring 服务器 war

jar包(官方推荐)

jar包方式启动,也就是使用spring boot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上,就ok。不需要外置tomcat

1.打成jar包

2.将jar包放到任意目录

执行下面的命令

$ nohup java -jar test.jar >temp.txt &

//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。

image

3.放开端口

阿里云服务器需要放开对应的端口
添加安全组:我的项目中配置的启动端口是18080,故这里需要放开18080端口,才能访问

war包

传统的部署方式:将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即可访问。

开发环境:jdk1.8 + IDEA

下面搭建一个demo演示如何打war包部署并且如何访问:spring boot + maven

1.新建项目

image

image

这里我们默认打成jar包,不用修改。

2.修改启动Application文件

项目新建完成后,修改启动Application文件继承SpringBootServletInitializer,实现configure方法
image

@SpringBootApplication
@RestController
public class Demo1Application extends SpringBootServletInitializer {

    // 用来测试访问
    @RequestMapping("/")
    public String home() {
        return "hello 朋友";
    }

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

    // 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署。
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Demo1Application.class);
    }
}

3.修改pom.xml

<packaging>war</packaging>

完整pom.xml代码如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 这里打成war包 若打jar,需将war改为jar -->
    <packaging>war</packaging>

    <name>demo1</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>demo1</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

4.打包

这里可以直接到项目根目录下面:运行 maven package命令,打包。

我这里直接使用idea打包,如下图:
image

5.将war放入外部tomcat的webapps目录下
image

6.启动tomcat
image

小结

1.对比两种打包方式

jar更加简单,方便。具体使用哪种方式,应视应用场景而定。

2.注意

再说一次,将项目打成war包,部署到外部的tomcat中,这个时候,不能直接访问spring boot 项目中配置文件配置的端口。application.yml中配置的server.port配置的是spring boot内置的tomcat的端口号, 打成war包部署在独立的tomcat上之后, 你配置的server.port是不起作用的。一定要注意这一点!!
其实我们从tomcat的启动界面,已经可以看出,是启动的哪个端口:
image

很明显,日志告诉我们,我们应该访问8080端口。
下图是使用spring boot 内置tomcat启动日志,可以看出配置的server.port是生效了的!

标签:tomcat,spring,boot,jar,端口,Boot,Spring,服务器,war
From: https://www.cnblogs.com/leepandar/p/16714476.html

相关文章

  • 微服务网关 Spring Cloud Gateway
    什么是网关假设你现在要做一个电商应用,前端是移动端的APP,后端是各种微服务。那你可能某个页面需要调用多个服务的数据来展示。如果没有网关,你的系统看起来就是这个样子的:......
  • SpringIOC的理解
    IOC(InversionOfControl):控制反转控制:即对资源(如一个Java类)的获取方式获取方式可以分为两种主动获取在Spring之前我们想要获取一个类都是自己创建,即new出这个类......
  • Spring-01:初学资源准备及初始化spring项目
    1资源准备在学习Spring框架前,你需要先准备好相应的学习资源,以帮助更好地掌握基础知识,快速解决过程中遇到的问题。①spring官方文档https://spring.io/这里你可以快速......
  • SpringMVC学习笔记(五)
    注解配置MVC使用配置类和注解联合使用的方式代替xml配置文件 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找......
  • Bootstrap Blazor V6.10.4 图标不正常显示升级处理
    更新日志V6.10.4fix(#I5R3SM):修复组件Table固定表头后允许列宽调整时导致不对齐问题#I5R3SM3250feat(#I5R3YG):BootstrapBlazor.FontAwesome更新到6.1.5老......
  • Spring框架
    Spring框架Java应用最广泛的框架,它的成功来源于理念,而不是技术本身IOC:控制反转AOP:面向切面编程DI:依赖注入非侵入式设计:不需要继承框架提供的任何一个类,即使跟换框......
  • 在Linux服务器上部署Flask
    要使用Flask,需要对MVC有一定了解构建PythonWeb项目,首先安装Flask:pip3installflask安装完成后,使用flask--version确保安装成功:然后创建Web目录和app目录设为~/demo......
  • 功能:客户端发送一句话到服务器:(TCP)
    功能:客户端发送一句话到服务器:(单向通信)(TCP)客户端:packagecom.gao.Project.pro3;importjava.io.DataOutputStream;importjava.io.IOException;importjava.io.Outpu......
  • 题目:模拟网站的登录,客户端录入账号密码,然后服务器端进行验证(TCP)
    题目:模拟网站的登录,客户端录入账号密码,然后服务器端进行验证(TCP)封装的类packagecom.gao.Project.Pro4;importjava.io.Serializable;publicclassUserimplements......
  • 题目:模拟网站的登录,客户端录入账号密码,然后服务器端进行验证(TCP)(完善)
    完善(加入完整的处理异常的方式、多线程接收用户请求)(TCP)封装的类packagecom.gao.Project.Pro5;importjava.io.Serializable;publicclassUserimplementsSerial......