Linux系统运行SpringBoot项目

常*

跨域访问,Linux,打包项目

项目描述

打包SpringBoot项目,上传至Linux系统并运行。

上传时间

2023.02.26

浏览人数

434人
常*
天津市河东区
Hot:2061

【需要用到 IDEA | FileZilla | 云服务器的远程连接】


一、迁移数据

将本地数据导入线上数据库。


二、修改application.properties中的配置

根据需求将包含mysql、redis、mail等功能的本地配置改为线上配置。

如果之前已经在云服务器运行了其他项目,记得修改此次项目的端口。

# 设置端口
server.port=8081


三、配置跨域访问

跨域请求是指当一台服务器资源从另一台服务器(不同的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求。在不做任何处理的情况下,浏览器基于同源策略会对跨域请求做一定的限制。当协议、IP、端口三部分中有任意一个不同时,即为跨域。

下面使用的是通过Filter过滤器来过滤服务请求,向请求端设置Response Header(响应头部)的Access-Control-Allow-Origin属性声明允许跨域访问。

创建拦截器文件,位置及代码如下所示。

Linux系统运行SpringBoot项目

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter
public class CorsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        chain.doFilter(req, res);
    }
}

或者

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

   // 当前跨域请求最大有效时长。这里默认1天
   private static final long MAX_AGE = 24 * 60 * 60;

   @Bean
   public CorsFilter corsFilter() {
       UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
       CorsConfiguration corsConfiguration = new CorsConfiguration();
       corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
       corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
       corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
       corsConfiguration.setMaxAge(MAX_AGE);
       source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
       return new CorsFilter(source);
   }
}


四、配置pom.xml 

①配置项目名,放在 build 中,与 plugins 平行

<!--项目名-->
<finalName>goodsforexcel</finalName>

②添加项目打包插件,放在 plugins 中

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
     <!--项目启动文件-->
     <mainClass>com.goods.goodsforexcel.GoodsforexcelApplication</mainClass>
  </configuration>
</plugin>


五、配置打包配置项(Project Structure)

工具栏File → Project Structure → Artifacts → ➕ → JAR → From modules with dependencies

Linux系统运行SpringBoot项目

Linux系统运行SpringBoot项目

此时resources目录下会出现 MANIFEST.MF 文件,删掉该文件之后可以重新进行项目打包配置。

Linux系统运行SpringBoot项目


六、项目打包(Build)

工具栏 Build → Build Artifacts → Build(首次打包) / Rebuild(重新打包)

在classes目录下可以找到项目打包文件夹 XXX_jar,在服务器运行该文件夹中的 XXX.jar 文件即可启动该项目。

Linux系统运行SpringBoot项目


七、将项目上传至云服务器

打开FileZilla,将 XXX_jar 文件夹上传至相应目录。

如果项目文件有修改但依赖没有变化,只需要Rebuild后上传并覆盖 XXX.jar 这一个文件即可。每次更新项目文件之后都要重新运行 XXX.jar 进行项目重启(详见八、②)。

Linux系统运行SpringBoot项目


八、在云服务器启动项目

①如果修改过项目端口,需要确认该端口是否已开启

如果没有开启,在云服务器的 安全组 - 配置规则 中进行 手动添加。

Linux系统运行SpringBoot项目

②在云服务器打开远程连接,进入 XXX_jar 目录,运行 XXX.jar 文件(指令如下)

如果运行了多个项目,需要记清每个项目对应的进程id(比如记录在上图端口配置的描述里),以便后续操作。

切入目录:cd 目录地址 
后台运行项目文件并记录日志:nohup java -jar XXX.jar > XXX.log 2>&1 &

③其他指令

查看日志:tail -f XXX.log
退出查看日志:Ctrl+Z
查看正在运行的项目进程idpgrep java
结束项目进程:kill -s 9 进程id
切到总目录:cd /
切到上级目录:cd ..


==========END==========


5分

还未获得评语哦~
Django 天津Java培训 天津Java培训班 天津Java培训哪家好?天津Java培训机构 java python ajax 天津Java培训 天津Java培训班 天津Java培训班管用吗 天津Java培训班哪家好 Java 天津Java培训 Java培训 天津编程培训 Java Java培训班 Eclipse Tomcat Git 天津Java培训 Java培训 天津编程培训 Java Java培训班 Eclipse MyEclipse IntelliJ IDEA 天津Java培训 Java培训班 Java开发 Java 天津Java开发培训 Eclipse MyEclipse 天津Java培训 天津Java开发培训 天津Java培训班 Eclipse MyEclipse 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 Java python web前端 天津Java培训 天津Java 培训班 天津Java培训机构 天津Java开发培训 Editplus ltraEdit Eclipse 天津Java培训 天津Java培训班 Java开发培训 Java培训机构 ps ai 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 Java开发培训 java python web 天津Java培训 天津Java培训机构 天津Java培训班 天津Java培训学校 java python web 天津Java培训 天津Java培训机构 天津Java培训学校 天津Java培训哪家好 Java python web 天津Java培训 天津Java培训学校 Java python web 天津Java培训 天津Java 开发培训 天津Java开发培训机构 java python web 天津Java培训 天津Java培训机构 Java培训班 天津Java培训学校 Java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 Java python web 天津Java培训 天津Java培训机构 天津Java培训班 Java培训 java web python 天津Java培训 天津Java培训班 天津Java培训学校 Java培训机构 Java培训 java python web 天津Java培训 天津Java培训机构 Java培训 天津Java培训学校 java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训学校 java python web 天津Java培训 天津Java培训班 天津Java培训学校 Java培训 java python web 天津Java培训 天津Java配训学校 Java培训 java web python 天津Java培训 天津Java培训班 Java培训机构 Java培训 Java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 java python web 天津Java培训 天津Java培训班 天津Java培训机构 java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java web python 天津Java培训 天津Java培训学校 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训班 Java培训 java web python 天津Java培训 天津Java培训班 Java培训机构 java python web 天津Java培训 天津Java培训哪家好
常*    2061 天津市河东区 设计师杨冰是女孩 1992.**.**
本网站已在中国版权保护中心登记了美术作品著作权与软件著作权违者将依法追究责任,特此声明! | Copyright©2013-2022,zhuzuoji.com | 诚筑说培训学校(天津)有限公司内容支持 | 京ICP备17020986号-5