17.SpringBoot前后端分离项目之简要配置二

news2024/11/20 15:21:03

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

登录接口

前端:
01

后端控制器:
在My3Controller

@RequestMapping("/login")
public @ResponseBody RestObject login(@RequestBody UserUI userUI){
   System.out.println("login方法"+userUI);
   RestObject restObject = new RestObject();
   restObject.setCode(1);
   restObject.setMsg("登录成功!!!");
   return restObject;
}

策略研究-市场表现研究-添加新策略接口

前端如何找入口

02
03

前端如何修改

04

后端如何搭建

JavaBean保存数据:SendSellUI

import lombok.Data;
@Data
public class SendSellUI {
   private String id;                  //策略编号
   private String name;            //策略名称
   private String region;          //上市区域
   private String[] date;             //上市时间 (0 开始日期,1 结束日期)
   private Double preUpper;   //前复权价(最高)
   private Double preLower;   //前复权价(最低)
   private Double chgUpper;  //涨跌幅(最高)
   private Double chgLower;  //涨跌幅(最低)
   private Double dealUpper; //成交额(最高)
   private Double dealLower;  //成交额(最低)
}

My3Controller

@RequestMapping("/sendSell")
public @ResponseBody RestObject sendSell(@RequestBody SendSellUI sendSellUI){
   System.out.println("sendSell方法"+sendSellUI);
   String randomID = UUID.randomUUID().toString().replaceAll("-", "");
   sendSellUI.setId(randomID);
   HashMap<String, String> map = new HashMap<>();
   map.put("id",randomID);
   RestObject restObject = new RestObject();
   restObject.setCode(1);
   restObject.setMsg("添加策略成功!!!");
   restObject.setData(map);
   return restObject;
}

策略研究-市场表现研究-策略列表维护

前端如何找入口

还原策略列表
如果在策略添加栏目田间了多个策略,需要删除的简单操作
05

06
07
08

前端如何修改

09

10

后端如何搭建

创建可以数据封装的JavaBean
011

import lombok.Data;

import java.util.List;
@Data
public class SendSellTableUI {
   private String id;
   private String name;
   private List<SendSellTableItemUI> table;
}
import lombok.Data;

@Data
public class SendSellTableItemUI {
   private String label;
   private String prop;
   private Boolean sortable;
}


My3Controller

//策略列表:模拟通过数据库保存了多个策略
List<SendSellTableUI> SendSellTableUIList = new ArrayList<>();
@RequestMapping("/sendList")
public @ResponseBody RestObject sendList(@RequestBody SendSellTableUI sendSellTableUI){
   System.out.println("sendList方法"+sendSellTableUI);
   SendSellTableUIList.add(sendSellTableUI);
   System.out.println(SendSellTableUIList.size());
   RestObject restObject = new RestObject();
   restObject.setCode(1);
   restObject.setMsg("添加策略成功!!!");
   return restObject;
}

策略研究-市场表现研究-列表托管展示

前端如何找入口

012
013

前端如何修改

014

// 请求策略推荐左侧列表接口
export async function leftList() {
	//从服务器获取策略列表
	let obj = await req.post('/my3/leftList');
	//如果服务器有策略列表,向服务器策略列表的头部添加乖离率
	if(obj.code==1 && obj.data.length>0){
		obj.data.unshift({
			"id": '000000',
			"name": 'BIAS乖离率推荐',
			"table": [{
				"label": "股票代码",
				"prop": "stockCode",
				"sortable": false,
			}, {
				"label": "股票名",
				"sortable": false,
				"prop": "name",
			}, {
				"label": "交易日期",
				"sortable": true,
				"prop": "date",
			}, {
				"label": "收盘价",
				"sortable": true,
				"prop": "closingPrice",
			}, {
				"label": "乖离率",
				"sortable": true,
				"prop": "bias",
			}]
		});
		//将最新的策略列表 同步到本地
		setStorage('leftList', obj.data);
	}
	//从浏览器本地获取策略列表的
	if (!localStorage['leftList']) {
		setStorage('leftList', [{
			"id": '000000',
			"name": 'BIAS乖离率推荐',
			"table": [{
				"label": "股票代码",
				"prop": "stockCode",
				"sortable": false,
			}, {
				"label": "股票名",
				"sortable": false,
				"prop": "name",
			}, {
				"label": "交易日期",
				"sortable": true,
				"prop": "date",
			}, {
				"label": "收盘价",
				"sortable": true,
				"prop": "closingPrice",
			}, {
				"label": "乖离率",
				"sortable": true,
				"prop": "bias",
			}],
		}]);
	}
	let arr = getStorage('leftList');
	return arr;
}

后端如何搭建

@RequestMapping("/leftList")
public @ResponseBody RestObject leftList(){
   System.out.println("leftList方法");
   RestObject restObject = new RestObject();
   restObject.setCode(1);
   restObject.setMsg("查询策略列表成功!!!");
   restObject.setData(SendSellTableUIList);
   return restObject;
}

策略-乖离率推荐-分页

前端如何找入口

分页开始的入口部分:
015

016

前端如何修改

使用真数据接口
017

后端如何搭建

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class BIASUI {
   private String stockCode;
   private String name;
   private String date;
   private String closingPrice;
   private String bias;
}

控制器:

//准备模拟分页的数据
private Random random = new Random();
private List<BIASUI> biasuiList = new ArrayList<>(5000);
{
   //向集合中,添加5000条数据
   for (int i = 0; i <5000 ; i++) {
       biasuiList.add(
               new BIASUI("SH"+i,"股票"+i,"2000/01/01",random.nextDouble()*10+"",random.nextDouble()+"")
       );
   }
}
//定义模拟分页的方法
public List<BIASUI> getBiasuiListByPage(Integer pageNum,Integer pageSize){
   List<BIASUI> list = new ArrayList<>();
   //专门有一个记录个数的变量count
   //模拟分页
   for (int i = (pageNum-1)*pageSize,count=0; count<pageSize; i++,count++) {
       try {
           list.add(biasuiList.get(i));
       } catch (Exception e) {
           //为了防止索引越界异常,出现了该异常,这里就忽略
       }
   }
   return list;
}
@RequestMapping("/gll")
public @ResponseBody RestObject gll(@RequestBody Map<String,Object> map){
   System.out.println("gll方法");
   System.out.println(map);
   //进行模拟分页
   List<BIASUI> list = getBiasuiListByPage(Integer.parseInt(map.get("pageNum").toString()), Integer.parseInt(map.get("pageSize").toString()));
   HashMap<String, Object> map2 = new HashMap<>();
   map2.put("rows",biasuiList.size());
   map2.put("list",list);
   RestObject restObject = new RestObject();
   restObject.setCode(1);
   restObject.setMsg("业务成功");
   restObject.setData(map2);
   return restObject;
}

SpringBoot前后端分离项目之简要配置至此结束!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux第六章-Vi和Vim编辑器

vi和vim的基本介绍 Linux系统会内置vi文本编辑器 vim具有程序编辑的能力&#xff0c;可以看做是vi的增强版本。 vi和vim的三种模式 正常模式 以vim打开一个档案就直接进入一般模式了&#xff08;这是默认的模式&#xff09;。在这个模式中&#xff0c;可以使用上下键来移动…

模拟实现字符串函数(5): strncpy

1.函数介绍 拷贝num个字符从源字符串到目标空间。 如果源字符串的长度小于num&#xff0c;则拷贝完源字符串之后&#xff0c;在目标的后边追加0&#xff0c;直到num个 strncpy与strcpy的作用是一样的&#xff0c;区别在于strncpy指定了复制字符的个数。 2.思路分析 这里多了…

管理系统搭建一般步骤(会话跟踪 路由导航守卫 响应拦截器)

1&#xff0c;vue-cli进行项目搭建 2&#xff0c;使用ELement-UI 3&#xff0c;使用vue组件路由 4&#xff0c;点击登录&#xff0c;向后端进行账号密码比对 三种情况&#xff1a; 密码有误 服务器忙 密码正确。 具体步骤&#xff1a; 首先写好前端一个大体框架&#xf…

深度强化学习第 1 章 机器学习基础

1.1线性模型 线性模型&#xff08;linear models&#xff09;是一类最简单的有监督机器学习模型&#xff0c;常被用于简单的机 器学习任务。可以将线性模型视为单层的神经网络。本节讨论线性回归、逻辑斯蒂回归&#xff08;logistic regression&#xff09;、 softmax 分类器等…

Windows 中环境变量的查看与设置

接触了LLM应用开发后&#xff0c;经常要用到环境变量的设置&#xff08;openAI apikey啥的&#xff09; 但是老忘记&#xff0c;今天来学习和总结一下 主要用到以下几种&#xff1a;使用 PowerShell、CMD 和 Python 来查看和设置环境变量 文章目录 1. PowerShell查看环境变量&a…

掌握深入挖掘数据本质的方法

文章目录 掌握深入挖掘数据本质的方法1. 确定数据类型2. 数据清洗3. 数据可视化4. 探索性数据分析5. 特征工程6. 机器学习算法7. 自然语言处理 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华…

C语言:冒泡排序

C语言 基础开发----目录 冒泡排序 1. 原理 对一个有n个数据的数组进行遍历&#xff0c;依次对相邻两个数据进行比较大小&#xff0c;若大的数据在前面则交换位置&#xff08;升序&#xff09;&#xff0c;完成一次遍历后数组中最大的数据到了数组的末尾位置&#xff0c;就象水…

六、RocketMQ发送事务消息

事务消息介绍 在一些对数据一致性有强需求的场景&#xff0c;可以用 Apache RocketMQ 事务消息来解决&#xff0c;从而保证上下游数据的一致性。 以电商交易场景为例&#xff0c;用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的…

MySQL有时候命中索引有时候又不命中

索引失效的情况 -----可能 索引主要看where 、group by 、order by 1.组合索引不遵循最佳左前缀法制。最佳左前缀法制&#xff1a;如果索引了多列&#xff0c;要遵循最左前缀法则&#xff0c;指的是查询从索引的最左前列开始并且不跳过索引中的列。如组合索引为A B C 只有ABC,A…

【蓝桥】数树数

一、题目 1、题目描述 给定一个层数为 n n n 的满二叉树&#xff0c;每个点编号规则如下&#xff1a; 具体来说&#xff0c;二叉树从上往下数第 p p p 层&#xff0c;从左往右编号分别为&#xff1a;1,2,3,4&#xff0c;…, 2p-1。 给你一条从根节点开始的路径&#xff0…

Node.js初体验

Node.js简介 node.js的运行环境 1.V8引擎对js代码进行解析与执行 2.内置API&#xff1a;fs、path、http...等&#xff0c;提供了一些能力&#xff0c;能够使得js调用这些API去做一些后端的事情 流程&#xff1a;我们在node.js的运行环境中编写待执行的JavaScript代码&#…

Spring Cloud Gateway 使用 Redis 限流使用教程

从本文开始&#xff0c;笔者将总结 spring cloud 相关内容的教程 版本选择 为了适应 java8&#xff0c;笔者选择了下面的版本&#xff0c;后续会出 java17的以SpringBoot3.0.X为主的教程 SpringBoot 版本 2.6.5 SpringCloud 版本 2021.0.1 SpringCloudAlibaba 版本 2021.0.1.…

单目3D目标检测——MonoCon 模型训练 | 模型推理

本文分享 MonoCon 的模型训练、模型推理、可视化3D检测结果、以及可视化BEV效果。 模型原理&#xff0c;参考我这篇博客&#xff1a;【论文解读】单目3D目标检测 MonoCon&#xff08;AAAI2022&#xff09;_一颗小树x的博客-CSDN博客 源码地址&#xff1a;https://github.com/2…

在vs code中创建一个名为 “django_env“ 的虚拟环境报错?!以下或许方法可以解决

# vs code 终端窗口中运行&#xff1a; mkvirtualenv django_env # 拓展&#xff1a; mkvirtualenv django_env 是一个命令&#xff0c;用于创建一个名为 "django_env" 的虚拟环境。虚拟环境是一种用于隔离不同Python项目所需依赖的工具。通过创建虚拟环境&#x…

【分布式计算】九、容错性 Fault Tolerance

分布式系统应当有一定的容错性&#xff0c;发生故障时仍能运行 一些概念&#xff1a; 可用性Availability&#xff1a;系统是否准备好立即使用 可靠性Reliability&#xff1a;系统连续运行不发生故障 安全性&#xff1a;衡量安全故障的指标&#xff0c;没有严重事件发生 可维护…

zabbix内置宏、自动发现与注册

一、zabbix内置宏 1、概念&#xff1a; 在Zabbix中&#xff0c;内置宏是一种特殊的变量&#xff0c;通常用在 Trigger 名称和表达式中&#xff0c;引用有关监控对象的信息。 2、种类&#xff1a; {HOST.NAME} 主机名 {HOST.IP} 主机 IP 地址 {TRIGGER.DESCRIPTION} 触…

Unity中Shader的深度缓冲区

文章目录 前言一、什么是深度缓冲区深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区在这里插入图片描述 二、什么是深度信息三、深度缓冲区的作用 前言 Unity中的深度缓冲区 一、什么是深度缓冲区 深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区 深度缓冲区&a…

勒索软件组织声称它“损害了所有索尼系统”

新晋勒索软件组织 RansomedVC 声称已成功入侵娱乐巨头索尼的计算机系统。正如勒索软件团伙所做的那样&#xff0c;它在其暗网网站上发布了这一消息&#xff0c;并在那里出售从受害者计算机网络中窃取的数据。 该公告称索尼的数据正在出售&#xff1a; 索尼集团公司&#xff08…

数据结构与算法--并查集结构

数据结构与算法--并查集结构 1 岛问题 2 并查集结构 1 岛问题 一个矩阵中只有0和1两种值&#xff0c;每个位置都可以和自己的上、下、左、右 四个位置相连&#xff0c;如果有一片1连在一起&#xff0c;这个部分叫做一个岛&#xff0c;求一个矩阵中有多少个岛? 【举例】 001…