首先我们来讲解“从零开始让你的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服务器上。
- 编写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);
}
}
- 在命令行中打包此项目(需要保证已经安装好maven):
mvn package
-
将打包好的jar包上传到Linux服务器中。
-
创建
/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包。
- 重新加载配置文件,并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp.service
- 访问网站,在浏览器中访问
http://服务器ip:8080
,即可看到“Hello, world!”的页面。
示例2
另一个示例是如何将带有数据库的Spring Boot应用跑在Linux服务器上。
- 编写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);
}
}
- 在
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
-
在命令行中打包此项目。
-
将打包好的jar包上传到Linux服务器中。
-
创建
/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包。
-
安装MySQL数据库,并创建
test
数据库,以及users
表。 -
重新加载配置文件,并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp.service
- 访问网站,在浏览器中访问
http://服务器ip:8080
,即可看到“Hello, world! There are X users in the database.”的页面,其中X
为数据库中users
表中的记录数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从零开始让你的Spring Boot项目跑在Linux服务器 - Python技术站