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

首先我们来讲解“从零开始让你的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日

相关文章

  • Springboot异常错误处理解决方案详解

    Spring Boot异常错误处理是一个非常重要的主题,它可以帮助我们更好地处理应用程序中的异常和错误。以下是Spring Boot异常错误处理解决方案的详细攻略: 全局异常处理 在Spring Boot中,我们可以使用@ControllerAdvice注解来定义全局异常处理器。以下是一个示例: @ControllerAdvice public class …

    Java 2023年5月15日
    00
  • 为什么Java 8取消了永久代?

    为什么Java 8取消了永久代? 在Java 8之前,Java虚拟机有一块非堆内存称为永久代(PermGen),它专门用于存放类的元数据信息、常量池、方法区和静态变量等内容。由于永久代有一定的内存限制,并且它是基于线性扫描和GC Roots扫描来进行垃圾回收的,所以在大量类的场景下容易出现“永久代溢出”的问题。此外,永久代和堆内存的内存管理方式不同,会导致被…

    Java 2023年5月11日
    00
  • 实例讲解Java读取一般文本文件和word文档的方法

    让我来为大家详细讲解一下实例讲解Java读取一般文本文件和word文档的方法。 1. 读取一般文本文件 Java读取一般文本文件的方式很简单,可以使用File类和Scanner类。 1.1 使用File类读取文本文件 参照以下代码: import java.io.BufferedReader; import java.io.FileReader; impor…

    Java 2023年5月19日
    00
  • Spring mvc工作原理_动力节点Java学院整理

    Spring MVC工作原理 Spring MVC是一种流行的 Java Web 应用程序开发框架,它基于模型-视图-控制器(MVC)设计模式来构建 Web 应用程序。其工作原理如下: 请求的处理流程 客户端向服务器发送HTTP请求,请求到达服务器后,首先到达前端控制器Front Controller。 Front Controller将请求传递给处理器处理…

    Java 2023年6月15日
    00
  • Java线程休眠的5种方法

    Java线程休眠的5种方法 Java中的线程可以通过休眠来暂停一段时间。线程的休眠有5种方法,本文将详细介绍这5种方法,并给出代码示例。 方法一:使用Thread.sleep() Thread.sleep()是Java中比较常用的线程休眠方法。它可以将当前正在执行的线程休眠指定的时间,单位是毫秒。下面是使用Thread.sleep()方法的示例: publi…

    Java 2023年5月19日
    00
  • Springboot启动原理和自动配置原理

    放本地文件夹都快吃土了,准备清理文件夹,关于Springboot的! 启动原理 @SpringBootApplication public class Start { public static void main(String[] args) { SpringApplication.run(Start.class, args); } } SpringApp…

    Java 2023年4月25日
    00
  • java实现留言板功能实例

    Java实现留言板功能实例 在Java Web开发中,留言板是一个常见的功能。本文将介绍如何使用Java实现留言板功能。 准备工作 首先要准备的是Java Web开发的基础知识,包括Java Servlet、JSP、HTML、CSS和数据库MySQL的使用。 创建数据库 使用MySQL创建一个名为“message_board”的数据库,其中包含一个名为“me…

    Java 2023年6月15日
    00
  • maven

    # maven 1. maven基础 Maven是apache提供的一个项目管理工具,它的作用就是管理项目 2. maven作用 1). 依赖管理[方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题] 1. 依赖 denpendency 依赖(坐标):一个jar包 groupId 公司域名倒写 artifactId 项目名 version 版本号 坐…

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