centos7部署java环境及springBoot项目jar包部署

本文介绍如何在CentOS7上安装Java环境,并详细阐述了SpringBoot项目的jar包部署流程,包括配置应用端口、设置主类、打包、启动应用以及实时查看运行日志等关键步骤。

一、centos安装jdk

1.命令行运行:

yum install java java-1.8.0-openjdk-devel

2.查看 java 版本:

java -version

二、springBoot项目jar包部署

1.服务器jar部署

1.1 properties 中配置端口

server.port=8080

1.2 修改 pom.xml 文件,找到 spring-boot-maven-plugin,增加mainClass,防止打jar包时找不到主类:

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<mainClass>com.mmall.SpringbootApplication</mainClass>
	</configuration>
</plugin>

1.3 修改启动类,继承SpringBootServletInitializer并重写configure方法:

package com.mmall;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@MapperScan("com.mmall.dao")
@SpringBootApplication
public class SpringbootApplication extends SpringBootServletInitializer {
	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
	// 为了打包springboot项目
	@Override
	protected SpringApplicationBuilder configure (SpringApplicationBuilder builder) {
		return builder.sources(this.getClass());
	}
}

1.4 按如下步骤进行打包操作(jar包位置为:项目根路径下/target文件夹下)
+

在这里插入图片描述
1.5 将 jar 文件复制到云服务器的项目文件夹内(文件夹需自己手动创建,方便后期维护)
在这里插入图片描述
1.6 使用服务器命令行cd到刚才的项目文件夹下,执行如下命令:
(nohup表示后台挂起运行)

# 后台挂起运行,及记录日志
nohup java -jar springboot-0.0.1-SNAPSHOT.jar >/home/workspace/service/spring.log 2>&1 &

# 实时查看运行日志
tail -f spring.log

# 以下是其他相关的linux命令
# 1,查看当前终端后台运行的进程
jobs-|
# 2,“spring”为条件,表示筛选出包含“spring”字段的进程,第二列为进程号
ps -aux | grep spring        
# 3,根据进程号杀掉进程   
kill -9 进程号        

2.实时查看运行日志

tail -f spring.log
CentOS 7部署基于 Spring Boot 的分布式应用,需要从多个方面进行配置和优化,以确保应用能够稳定运行并与其他服务组件协同工作。以下是一个完整的部署流程和技术要点: ### 3.1 环境准备与依赖安装 在部署 Spring Boot 应用之前,需要确保系统环境满足基本要求。CentOS 7 通常用于部署企业级应用,因此需要安装必要的运行时环境和依赖。 - **Java 运行环境**:Spring Boot 应用基于 Java,推荐使用 OpenJDK 11 或更高版本。可以通过以下命令安装: ```bash sudo yum install java-11-openjdk-devel ``` 安装完成后,使用 `java -version` 验证是否安装成功。 - **Docker CE**:如果采用容器化部署,建议安装 Docker CE。Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10,CentOS 7 满足最低内核的要求,所以可以在 CentOS 7 上安装 Docker[^2]。安装步骤如下: ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ``` - **RabbitMQ(可选)**:若项目中使用消息队列,可以选择 RabbitMQ。RabbitMQ 是采用 Erlang 语言开发的,所以系统环境必须提供 Erlang 环境,第一步就是安装 Erlang[^4]。安装 Erlang 和 RabbitMQ 的命令如下: ```bash sudo yum install epel-release sudo yum install erlang sudo yum install rabbitmq-server sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server ``` ### 3.2 Spring Boot 应用打部署 Spring Boot 应用通常以 JAR 形式发布。可以通过 Maven 或 Gradle 构建工具生成可执行 JAR 文件。 - **构建 JAR **: ```bash mvn clean package ``` 构建完成后,JAR 文件将位于 `target/` 目录下。 - **运行 JAR **: ```bash java -jar your-application.jar ``` 如果使用后台运行方式,可以结合 `nohup`: ```bash nohup java -jar your-application.jar > app.log 2>&1 & ``` - **临时目录管理**:Spring Boot jar 部署时会使用临时目录,通常用于解压内嵌资源或缓存数据。在分布式应用中,临时目录的统一管理和清理是一个需要改进的地方[^3]。建议通过以下方式优化: - 使用统一的临时目录路径(如 `/var/tmp/springboot`)。 - 配置定时任务清理旧的临时文件。 -部署脚本中自动创建和权限设置。 ### 3.3 容器化部署(Docker) 将 Spring Boot 应用容器化可以提升部署效率和环境一致性。 - **编写 Dockerfile**: ```dockerfile FROM openjdk:11-jdk-slim COPY your-application.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] ``` - **构建镜像并运行容器**: ```bash docker build -t your-application . docker run -d -p 8080:8080 --name springboot-app your-application ``` ### 3.4 分布式服务部署与协调 在分布式系统中,服务之间可能存在依赖关系,部署时需注意以下几点: - **服务发现与注册**:使用 Spring Cloud Eureka、Consul 或 Nacos 等服务注册与发现机制,确保服务间通信顺畅。 - **配置中心**:采用 Spring Cloud Config 或 Apollo 实现统一配置管理。 - **负载均衡与网关**:使用 Zuul、Gateway 或 Nginx 作为 API 网关,实现请求路由与负载均衡。 - **日志与监控**:集成 ELK(Elasticsearch、Logstash、Kibana)或 Prometheus + Grafana 实现日志收集与性能监控。 ### 3.5 部署注意事项 - **环境一致性**:确保开发、测试与生产环境一致,避免因环境差异导致问题[^1]。 - **服务依赖管理**:提前部署好数据库、缓存、消息队列等依赖服务。 - **自动部署**:结合 Jenkins、GitLab CI/CD 或 Ansible 实现自动部署流程。 - **安全性**:配置防火墙规则、限制端口访问、使用 HTTPS 等措施保障系统安全。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值