项目描述
上传时间
浏览人数
【需要用到 IDEA | FileZilla | 云服务器的远程连接】
一、迁移数据
将本地数据导入线上数据库。
二、修改application.properties中的配置
根据需求将包含mysql、redis、mail等功能的本地配置改为线上配置。
如果之前已经在云服务器运行了其他项目,记得修改此次项目的端口。
# 设置端口 server.port=8081
三、配置跨域访问
跨域请求是指当一台服务器资源从另一台服务器(不同的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求。在不做任何处理的情况下,浏览器基于同源策略会对跨域请求做一定的限制。当协议、IP、端口三部分中有任意一个不同时,即为跨域。
下面使用的是通过Filter过滤器来过滤服务请求,向请求端设置Response Header(响应头部)的Access-Control-Allow-Origin属性声明允许跨域访问。
创建拦截器文件,位置及代码如下所示。
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
此时resources目录下会出现 MANIFEST.MF 文件,删掉该文件之后可以重新进行项目打包配置。
六、项目打包(Build)
工具栏 Build → Build Artifacts → Build(首次打包) / Rebuild(重新打包)
在classes目录下可以找到项目打包文件夹 XXX_jar,在服务器运行该文件夹中的 XXX.jar 文件即可启动该项目。
七、将项目上传至云服务器
打开FileZilla,将 XXX_jar 文件夹上传至相应目录。
如果项目文件有修改但依赖没有变化,只需要Rebuild后上传并覆盖 XXX.jar 这一个文件即可。每次更新项目文件之后都要重新运行 XXX.jar 进行项目重启(详见八、②)。
八、在云服务器启动项目
①如果修改过项目端口,需要确认该端口是否已开启
如果没有开启,在云服务器的 安全组 - 配置规则 中进行 手动添加。
②在云服务器打开远程连接,进入 XXX_jar 目录,运行 XXX.jar 文件(指令如下)
如果运行了多个项目,需要记清每个项目对应的进程id(比如记录在上图端口配置的描述里),以便后续操作。
切入目录:cd 目录地址 |
后台运行项目文件并记录日志:nohup java -jar XXX.jar > XXX.log 2>&1 & |
③其他指令
查看日志:tail -f XXX.log |
退出查看日志:Ctrl+Z |
查看正在运行的项目进程id:pgrep java |
结束项目进程:kill -s 9 进程id |
切到总目录:cd / |
切到上级目录:cd .. |
==========END==========