16.SpringBoot前后端分离项目之简要配置一

SpringBoot前后端分离项目之简要配置一

前面对后端所需操作及前端页面进行了了解及操作,这一节开始前后端分离之简要配置

为什么要前后端分离

为了更低成本、更高效率的开发模式。
前端有一个独立的服务器。
后端有一个独立的服务器。

两个服务器之间实时数据交换:
HttpClient:
01

前端服务器通过浏览器 向后端服务器发送请求:
Ajax---json数据----》请求发给后端服务器
后端服务器--JSON数据---转为Java处理---转回json----》响应----Ajax

如何配置前后端服务器

端口问题


前端UNIAPP对应的服务器
后端SpringBoot对应的Tomcat服务器端口有时会冲突,导致后端服务器启动失败。

02
解决方案1:改后端服务器的启动端口号(不建议)
直接将8080端口号修改为8081
03

解决方案2:先启动后端Java服务器(8080),再启动前端服务器(自动分配8081)【建议】

跨域问题处理

后端:8080
前端:8081

需要让控制器可以完成跨域操作:

添加 @CrossOrigin

04

如何配置前端请求和后端响应(1)

禁用浏览器缓存

在前端页面按F12键—>点击Network—>点击Disable cache
05

注册接口

前端:
找到request,js
06

07
后端:
JavaBean接收数据
08
在UserUI中输入

import lombok.Data;
@Data
public class UserUI {//因为前端没有传递id,所以id前端接收中,获取不到任何数据private String id;private String userName;private String passWord;private String repeat;
}

JavaBean 封装返回数据
在RestObject中输入

import lombok.Data;
@Data
public class RestObject {private Integer code;           //前端的状态码 0:业务失败  1:业务成功private String msg;              //前端需要展示的信息private Object data;            //前端需要的复杂数据
}

控制器,处理前端发来的请求

@RestController
@RequestMapping("/my3")
@CrossOrigin
public class MyController3 {@RequestMapping("/register")public @ResponseBody RestObject register(@RequestBody UserUI userUI){System.out.println(userUI);RestObject restObject = new RestObject();//注册成功restObject.setCode(1);restObject.setMsg("注册成功");//注册失败的业务:/*restObject.setCode(0);restObject.setMsg("注册失败");*/return restObject;}
}

首页推荐接口

前端:
在api.js中
09
后端:
控制器:

@RequestMapping("/homeSell")
public @ResponseBody RestObject homeSell(){System.out.println("homeSell");RestObject restObject = new RestObject();//展示成功的业务:restObject.setCode(1);restObject.setMsg("业务成功,呵呵呵");ArrayList<Map<String, String>> mapsList = new ArrayList<>();//数据1HashMap<String, String> mapData1 = new HashMap<>();mapData1.put("id","001");mapData1.put("name","XX股票1");mapData1.put("src","http://localhost:8080/img/005.jpg");mapData1.put("industry","黄金");mapsList.add(mapData1);//数据2HashMap<String, String> mapData2 = new HashMap<>();mapData2.put("id","002");mapData2.put("name","XX股票2");mapData2.put("src","http://localhost:8080/img/007.jpg");mapData2.put("industry","金融");mapsList.add(mapData2);//数据3HashMap<String, String> mapData3 = new HashMap<>();mapData3.put("id","003");mapData3.put("name","XX股票3");mapData3.put("src","http://localhost:8080/img/008.jpg");mapData3.put("industry","白酒");mapsList.add(mapData3);restObject.setData(mapsList);//展示失败的业务:/*restObject.setCode(0);restObject.setMsg("业务失败");*/return restObject;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/140436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OceanBase自动安装部署演示环境demo

OceanBase自动安装部署 前提条件 官方给出硬件条件需要满足以下要求 本文操作系统为&#xff1a;Red Hat Enterprise Linux 8 64 位 下载链接&#xff1a;https://pan.baidu.com/s/1rZ39xJFhk0HdmC4wEJcxvg 提取码&#xff1a;c01x 下载并安装 all-in-one 安装包 执行如下…

程序员接单都在用这六大平台,你呢?

你还在一边熬夜敲代码&#xff0c;一边为自己的健康担忧吗&#xff1f; 你有被工位束缚&#xff0c;为缺乏自由闲暇的时间苦恼吗&#xff1f; 你有因工作交接不顺&#xff0c;给自己的“码农”生活雪上加霜吗&#xff1f; 你是否也在为自己这份“青春饭”&#xff0c;还能吃多久…

2023年中国脱硫石膏产量、均价、综合利用量及市场规模分析[图]

脱硫石膏主要成分和天然石膏一样&#xff0c;为二水硫酸钙CaSO42H2O&#xff0c;含量≥93%。脱硫石膏是FGD过程的副产品&#xff0c;FGD过程是一项采用石灰-石灰石回收燃煤或油的烟气中的二氧化硫的技术&#xff0c;其中2022年中国脱硫石膏产量同比增长2.0%&#xff1b;综合利用…

MATLAB中ss2tf函数用法

目录 语法 说明 示例 质点-弹簧系统 双体振荡器 ss2tf函数的功能是将状态空间表示形式转换为传递函数。 语法 [b,a] ss2tf(A,B,C,D) [b,a] ss2tf(A,B,C,D,ni) 说明 [b,a] ss2tf(A,B,C,D) 将方程组的状态空间表示形式转换为等同的传递函数。ss2tf 返回连续时间方程组…

3、Flowable任务分配和流程变量

任务分配和流程变量 1.任务分配 1.1 固定分配 固定分配就是我们前面介绍的&#xff0c;在绘制流程图或者直接在流程文件中通过Assignee来指定的方式 1.2 表达式分配 Flowable使用UEL进行表达式解析。UEL代表Unified Expression Language&#xff0c;是EE6规范的一部分.Flo…

未雨绸缪,前端小知识

目录 一、输入法输入时实时调用方法实现搜索 二、使用position: relative;会脱离标准流吗 三、dataV库初步了解 四、大屏常用库vue3-danmaku&#xff08;滚动弹幕&#xff09; 五、全屏发现页面底部出现大面积留白 六、elementUI的多选框选择其中一个直接导致全部选中 ​…

重生奇迹mu宠物带来不一样的体验

重生奇迹mu宠物有什么作用&#xff1f; 全新版本中更是推出了各种宠物&#xff0c;在玩游戏时还可以带着宠物&#xff0c;一起疯狂的刷怪等等&#xff0c;可以为玩家带来非常不错的游戏体验&#xff0c;那么下面就来给大家说说各种宠物适合做什么事情。 1、强化恶魔适合刷怪 …

iPhone 12电池寿命结果:四款机型都进行了比较

如果你想决定买哪款iPhone 12&#xff0c;电池寿命应该在你的清单上名列前茅。我们已经通过电池测试运行了所有新款iPhone 12&#xff0c;结果喜忧参半。 iPhone 12 mini是其中最小的一款&#xff0c;有一块小电池可供匹配&#xff0c;在5G上运行时间最短。iPhone 12和iPhone …

Linux性能优化--性能追踪3:系统级迟缓(prelink)

12.0 概述 本章包含的例子说明了如何用Linux性能工具寻找并修复影响整个系统而不是某个应用程序的性能问题。阅读本章后&#xff0c;你将能够&#xff1a; 追踪是哪一个进程导致了系统速度的降低。用strace调查一个不受CPU限制的进程的性能表现。用strace调查一个应用程序是如…

c 语言基础:L1-044 稳赢

大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方输得太惨&#xff0c;你需要每隔K次就让一个…

电容笔好还是触屏笔好?便宜又好用的电容笔推荐

目前有哪些电容笔值得买&#xff1f;相比于之前的电容笔&#xff0c;现在的电容笔增加了很多新的特性功能&#xff0c;例如防误触、避免手指不小心触碰屏幕造成书写错误、笔画粗细可以自由调整等。苹果最初的Pencil现在售价一直高居不下。所以&#xff0c;如果你没有过多的预算…

【ArcGIS Pro二次开发】(71):添加图层名称和路径到字段

如题&#xff0c;这个工具的目的就是将图层的名称和路径添加到字段值中。 有时候图层的名称和路径也是重要的信息&#xff0c;需要参与到字段的计算或是分析中&#xff0c;但是Arcgis Pro中没有一个方便的方法可以将其写入字段值&#xff0c;因此&#xff0c;就做了这么一个小…