从零开始让你的Spring Boot项目跑在Linux服务器

yizhihongxing

首先我们来讲解“从零开始让你的Spring Boot项目跑在Linux服务器”的攻略。

准备工作

在将Spring Boot项目跑在Linux服务器之前,需要先确保我们已经满足以下条件:

  • 已经有一台Linux服务器,并且可以通过SSH连接;
  • 已经安装好Java Runtime Environment(JRE);
  • 已经下载好我们的Spring Boot项目并打包成jar包。

将jar包上传至服务器

将Jar包上传至服务器的方式有很多种,比如使用FTP工具、使用SCP命令等等,这里我们演示使用SCP命令的方式。

首先进入到本地保存项目的目录,执行以下命令将jar包上传至服务器(假设服务器IP为192.168.1.100,上传至服务器的路径为/home/user/app):

scp target/xxx.jar user@192.168.1.100:/home/user/app/

其中target/xxx.jar为我们打包好的jar包路径,user为服务器用户名,192.168.1.100为服务器IP地址,/home/user/app/为上传至服务器的路径。

安装并配置Systemd

Systemd是Linux系统中的一种系统和服务管理器,可以允许用户将自己的服务作为系统服务来运行。我们使用Systemd来管理我们的Spring Boot应用。

首先通过以下命令安装Systemd:

sudo yum install -y systemd

系统安装好Systemd后,我们需要为我们的应用创建一个Systemd service文件,用于指定如何启动我们的应用。在/etc/systemd/system/目录下创建一个myapp.service文件,文件内容如下:

[Unit]
Description=My Spring Boot App
After=syslog.target

[Service]
User=tomcat
ExecStart=/usr/bin/java -jar /home/user/app/xxx.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

在此文件中,我们指定了应用描述、启动用户、以及如何启动我们的Spring Boot应用。

接着,将此文件添加至systemctl,并启动:

sudo systemctl daemon-reload
sudo systemctl start myapp.service

至此,在Linux上已经成功部署了Spring Boot应用。

示例1

以下是一组示例,说明如何将一个简单的Spring Boot应用跑在Linux服务器上。

  1. 编写Spring Boot应用代码
@SpringBootApplication
@RestController
public class MyApplication {
  @RequestMapping("/")
  public String home() {
    return "Hello, world!";
  }

  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}
  1. 在命令行中打包此项目(需要保证已经安装好maven):
mvn package
  1. 将打包好的jar包上传到Linux服务器中。

  2. 创建/etc/systemd/system/myapp.service文件,添加以下内容:

[Unit]
Description=My Spring Boot App
After=syslog.target

[Service]
User=tomcat
ExecStart=/usr/bin/java -jar /home/user/app/xxx.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

其中xxx.jar为我们刚刚上传至服务器的jar包。

  1. 重新加载配置文件,并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp.service
  1. 访问网站,在浏览器中访问http://服务器ip:8080,即可看到“Hello, world!”的页面。

示例2

另一个示例是如何将带有数据库的Spring Boot应用跑在Linux服务器上。

  1. 编写Spring Boot应用代码(此处以MySQL数据库为例):
@SpringBootApplication
@RestController
public class MyApplication {
  @Autowired
  private JdbcTemplate jdbcTemplate;

  @RequestMapping("/")
  public String home() {
    String sql = "SELECT COUNT(*) FROM users";
    int count = jdbcTemplate.queryForObject(sql, Integer.class);
    return "Hello, world! There are " + count + " users in the database.";
  }

  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}
  1. application.properties文件中添加数据库配置:
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  1. 在命令行中打包此项目。

  2. 将打包好的jar包上传到Linux服务器中。

  3. 创建/etc/systemd/system/myapp.service文件,添加以下内容:

[Unit]
Description=My Spring Boot App
After=syslog.target

[Service]
User=tomcat
ExecStart=/usr/bin/java -jar /home/user/app/xxx.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

其中xxx.jar为我们刚刚上传至服务器的jar包。

  1. 安装MySQL数据库,并创建test数据库,以及users表。

  2. 重新加载配置文件,并启动服务:

sudo systemctl daemon-reload
sudo systemctl start myapp.service
  1. 访问网站,在浏览器中访问http://服务器ip:8080,即可看到“Hello, world! There are X users in the database.”的页面,其中X为数据库中users表中的记录数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从零开始让你的Spring Boot项目跑在Linux服务器 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • IDEA2020.2.3 “reading maven projects”卡住的问题

    问题描述: 在使用IntelliJ IDEA 2020.2.3进行Maven项目的读取时,出现了卡在”Reading Maven Projects”阶段的情况,无法继续进行下一步操作。 解决方案: 清空本地Maven仓库 首先尝试清空本地Maven仓库,步骤如下: 1)在命令行使用以下命令清空本地Maven仓库: mvn dependency:purge-l…

    Java 2023年5月20日
    00
  • 小程序实现带年月选取效果的日历

    下面是关于小程序实现带年月选取效果的日历的完整攻略: 一、实现思路 获取当前日期的年和月以及当月的天数; 使用数据渲染模板,并在相应的日期上添加样式; 实现滑动切换月份功能; 添加点击事件,实现从日历中选择日期并将该日期传递给父组件。 二、具体实现 下面我们将通过两个示例来说明具体实现步骤。 示例一 首先,我们需要在 wxml 文件中编写日历的结构,并通过 …

    Java 2023年5月23日
    00
  • 详解如何更改SpringBoot TomCat运行方式

    下面为您详细讲解如何更改SpringBoot Tomcat运行方式的完整攻略。 1. SpringBoot默认的Tomcat运行方式 SpringBoot默认使用嵌入式的Tomcat运行Web应用程序。这意味着您不需要单独部署一个Tomcat实例,而是可以使用SpringBoot提供的maven或gradle插件,在本地构建和运行应用程序。 要在Spring…

    Java 2023年5月19日
    00
  • Spring Boot启动过程完全解析(一)

    下面是对《SpringBoot启动过程完全解析(一)》的详细讲解: 1. SpringBoot的启动过程 在SpringBoot启动过程中,主要涉及到以下几个步骤: 调用SpringApplication.run()方法启动应用程序 根据相应的配置加载ApplicationContext上下文 完成自动装配 启动嵌入式Web服务器 对于每一步的详细说明,请阅…

    Java 2023年5月15日
    00
  • java遍历读取整个redis数据库实例

    当我们需要实现Java遍历读取整个Redis数据库实例的时候,可以使用以下步骤: 步骤一:导入Jedis依赖 我们可以使用Jedis Java Redis客户端,需要在maven或gradle中添加以下依赖: Maven: <dependency> <groupId>redis.clients</groupId> <…

    Java 2023年5月20日
    00
  • 关于JAVA中stream流的基础处理(获取对象字段和对象批量处理等)

    以下是关于JAVA中stream流的基础处理的完整攻略: 1. Stream概述 Stream是JAVA 8中新增的一个API,定义在Java.util.stream中。与I/O中的字节与字符的input与output流不同,Stream是操作集合和数组的高级抽象。Stream支持函数式编程,可以方便地通过filter、map、reduce等操作快速分析、处…

    Java 2023年5月26日
    00
  • java和Spring中观察者模式的应用详解

    我来详细讲解一下“java和Spring中观察者模式的应用详解”的完整攻略。 什么是观察者模式? 观察者模式(Observer Pattern)是一种行为型设计模式,也叫做发布-订阅模式(Publish/Subscribe),用于定义对象之间的一种一对多的依赖关系。当一个对象的状态改变时,所有依赖于它的对象都会收到通知并自动更新。观察者模式的核心思想就是解耦…

    Java 2023年5月20日
    00
  • 简单聊聊工作中常用的Java Lambda表达式

    让我详细讲解”简单聊聊工作中常用的Java Lambda表达式”的攻略。 Lambda 表达式是什么? Lambda 表达式是 Java 8 中引入的一项新特性,它可以在不需要具体实现某个接口中的所有方法的情况下,为该接口创建一个匿名实例。它可以看做是一种更简洁、更具表现力的极小函数,提供了 Java 中的函数式编程支持。 Lambda 表达式的语法 Lam…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部