使用花生壳内网穿透,来部署spring boot项目

2024-02-11 13:10

本文主要是介绍使用花生壳内网穿透,来部署spring boot项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的前端代码放在了Hbuilder X里运行,后端在idea中运行,先依次启动前后端的代码,然后打开花生壳,点击加号来添加自定义映射。

映射类型选择Https,内网主机填写127.0.0.1,也可以是自己主机的ipv4地址,内网端口填写项目的端口号,我的是8080

构建完成后,点击诊断,来判断是否内网穿透成功

 我在第一次诊断后出现诊断失败,无法连接内网127.0.0.1:8080。原来自己的项目只能通过localhost:8080进行访问,无法使用127.0.0.1:8080,这就需要修改前端代码了。

在前端代码→config/index.js文件中将host:'localhost'修改为host:'0.0.0.0'

 

 还有一处前端代码→build/webpack.dev.conf.js添加

useLocalIp:true,
disableHostCheck: true,

 这样我们的前端页面不仅可以通过localhost:8080访问,也可以通过127.0.0.1:8080进行访问。

同时花生壳重新诊断

 成功了!!!

别急,这时候我们还需要在后端代码中配置跨域操作,否则就算映射成功,我们还是无法通过花生壳给我们的外网域名来访问我们的项目。

我在后端代码 WebMVCConfig.java文件中配置跨域操作,

import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@EnableWebMvc
@Configuration
public class WebMVCConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {//跨域配置因为我的后端端口是:8888,前端端口是8080registry.addMapping("/**").allowedOrigins("http://localhost:8080").allowedOrigins("http://127.0.0.1:8080").allowedOrigins("花生壳给你的外网域名");}
}

 配置完成后,重新启动,这样就可以使用花生壳提供的外网域名访问我们的spring boot项目了,然而我发现,只有我的电脑可以访问前端页面,同时连接到后端接口,别的设备,比如我的手机只能访问前端页面,无法连接到后端接口,也就是说没法进行登录、新增、查看文章内容这些需要数据库配合的操作。

要解决这个问题,我们需要将花生壳给我们的外网域名添加到前端请求后端接口的url上,以登录接口为例,需要在前端代码路径为src/api/login.js中将url:'/login'改为url:'花生壳分配的域名/login'

export function login(account, password) {const data = {account,password}return request({url: '花生壳分配的域名/login',method: 'post',data})
}

 !!!也可以直接在前端路径config/dev.env.js中,将BASE_API:'"花生壳给点外网域名"'!!!

这种方法部署的项目缺点是离你电脑较远的人访问你的网站,可能打不开网页,我女朋友在广东,她就打不开。但是隔壁市还是没问题的,主要这样部署的成本很低,只需六块钱。

这篇关于使用花生壳内网穿透,来部署spring boot项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699861

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect