Linux

简介: 本文介绍如何将SpringBoot项目打包并部署至Linux服务器。包含工程搭建、JAR包上传、JDK安装配置、应用启动及通过心跳接口验证服务健康状态的完整流程,适用于Java应用的Linux部署测试场景。(238字)

1.系统打包
为方便测试,这里我以一个简单的SpringBoot工程为例,工程中预留了一个心跳健康检查接口
即后续可以通过访问这个接口,感知应用是否健康,如果有正常返回即说明工程成功部署
工程搭建
如不想0-1搭建,也可直接采用这个:

pom.xml
<?xml version="1.0" encoding="UTF-8"?>


4.0.0
com.yzxb
linux
0.0.1-SNAPSHOT
linux
Demo project for Spring Boot

1.8
UTF-8
UTF-8
2.6.13



org.springframework.boot
spring-boot-starter-web





org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import


<build>
    <finalName>linuxDemo</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <configuration>
                <mainClass>cn.yzxb.linux.LinuxApplication</mainClass>
            </configuration>
            <executions>
                <execution>
                    <id>repackage</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>


启动类
package cn.yzxb.linux;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LinuxApplication {
public static void main(String[] args) {
SpringApplication.run(LinuxApplication.class, args);
System.out.println("Linux run success");
}
}

controller
package cn.yzxb.linux.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("heart")
public class LinuxController {

@GetMapping
public String heartBeat() {
    return "I'm OK";
}

}

应用打包

2.上传应用
找到上述打包路径所在的jar文件,借助于xshell或finalshell等工具,上传至自己指定的路径即可
应用启动前,请确保你已正确安装对应版本的JDK,如未安装可参照下述操作
1.上传JDK

2.安装JDK
● 在jdk所在目录解压即可:tar -zxvf jdk-8u271-linux-x64.tar.gz
3.配置JAVA_HOME(注意JAVA_HOME路径)
● vim /etc/profile
export JAVA_HOME=/tmp/linux/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
● source /etc/profile
4.验证JDK
● source /etc/profile

3.启动应用

4.验证心跳

相关文章
|
2月前
|
缓存 NoSQL Java
[ERP]SpringBoot集成Redis技术(☆)
克隆或下载代码至IDEA,确保JDK、Maven环境匹配。遇配置问题及时请教同事或组长。运行项目后,针对商品查询接口使用Redis缓存优化,注意处理缓存更新及雪崩、穿透、击穿问题。通过ApiFox等工具测试接口,提升实战能力。技术栈:Git、Maven、SpringBoot、Redis。(238字)
|
2月前
|
SQL Java 数据库连接
面试八股文专题----SSM框架篇
本篇深入解析SSM框架核心:Spring的IOC/DI、AOP、事务管理及传播行为,详解JDK/CGLIB代理差异;SpringMVC请求流程与常用注解;Mybatis动态SQL、多表查询、缓存机制及批量操作,全面掌握企业级开发关键技术要点。
|
2月前
|
存储 SQL 关系型数据库
面试八股文专题----
本篇系统讲解MySQL核心知识:查询语句的书写与执行顺序、多表连接方式、索引机制(B+树、回表、覆盖索引)、存储引擎差异、SQL优化策略及慢查询分析,助你深入理解数据库原理并提升性能调优能力。
|
2月前
|
NoSQL Redis Docker
Redis集群搭建
Redis主从实现读写分离,提升并发能力;哨兵保障高可用,自动故障恢复;分片集群支持海量数据存储与高并发写入,三者结合构建高性能、高可用的Redis集群架构。
|
2月前
|
存储 安全 前端开发
面试八股文专题----java基础篇
本文系统梳理了Java核心知识点,涵盖final关键字、重载与重写、反射机制、集合框架、线程安全、JVM运行时数据区、类加载机制、Stream流操作及JDK8新特性等内容,结合原理与实战场景,深入解析常见面试问题与项目应用,助力提升Java编程与系统设计能力。(238字)
|
2月前
|
缓存 运维 监控
一场FullGC故障排查
本文记录了一次线上CPU使用率飙升至104%的问题排查过程。通过分析发现,问题根源为JVM频繁Full GC导致CPU占用升高,而机器内存监控未明显上涨,易造成误判。进一步借助JVM监控与堆内存分析工具(如JProfiler),定位到是因将用户上传的Excel数据以大List&lt;Map&gt;形式长期驻留内存,导致堆内存膨胀,最终引发Full GC。文章还探讨了解决方案:激进式——数据转存Redis;保守式——减少冗余字段,并总结了排查思路:关注JVM而非仅机器监控,结合dump分析与工具定位大对象,最终找到代码根因并优化。
|
2月前
|
缓存 NoSQL Java
微服务高频面试题
本课程系统讲解微服务架构核心知识:涵盖SpringBoot与SpringCloud原理、Nacos注册发现、OpenFeign远程调用、Sentinel熔断限流、Seata分布式事务、Gateway网关鉴权、RabbitMQ异步解耦、Elasticsearch倒排索引、Redis持久化与集群、缓存三大问题及解决方案,结合Canal实现数据同步,全面提升微服务实战能力。
|
2月前
|
Java 网络安全 Maven
[MES]分页与Excel批量上传(☆☆)
克隆代码至Idea(推荐SSH),或下载Zip快速运行。入职后遇JDK、Maven等配置问题,应主动请教同事或组长,克服“不敢问”心理。项目运行后需实现分页与批量上传功能,面对模糊需求要主动沟通确认。技术涉及Git、Maven、SpringBoot,重视代码规范与团队协作。
|
2月前
|
canal 消息中间件 关系型数据库
配置数据同步环境
本文介绍如何配置Canal+MQ实现MySQL数据同步。首先开启MySQL主从复制并启用Binlog行模式,创建Canal专用用户;接着部署Canal服务,配置其通过RabbitMQ发送数据变更消息;再设置监听的数据库表及动态Topic路由;最后在RabbitMQ中创建交换机与队列绑定,完成数据同步链路。修改指定表数据后,Canal捕获Binlog并将更新消息发送至MQ队列,供下游系统消费,实现高效、可靠的数据同步。
|
2月前
|
存储 Java 编译器
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,替换为原始类型(如Object或限定类型)。例如,List&lt;String&gt;和List&lt;Integer&gt;在运行时都变为List,导致getClass()相等。反射可绕过泛型限制,证明类型检查仅作用于引用。擦除后通过桥接方法解决多态冲突,并自动插入类型转换。但泛型不支持基本类型、静态成员不能使用类级泛型参数,且instanceof无法用于泛型类型判断。