前后端分离 获取客户端ip_前后端分离交互

新开一个项目,对最近学的vue进行一个总结,这段时间把前后端通信做掉.

后端:

介绍下使用到的工具类

请求工具: postman

后端框架:springboot

这里顺便做了个模块化,把通用工具集放common模块中.但是这里有个问题,其实我自己研究的时候没搞懂

就是之前我做模块化的时候,在本地中, 我必须要将common模块install到本地maven仓库中,这样jar才能找到我的common工具远程其实也一样,这就导致了一个问题, 我的jar包单单放到远程是无法运行的, 所以我之前编写的脚本都是先把代码提交到远程, 然后再在远程服务器上git pull, maven clean build (skiptest)啥的 然后再运行, 这种方式其实我挺不喜欢的, 我前端的脚本都是直接打好包,压缩传上去就能够使用的, 不知道有没有那种只需要一个jar包就能运行的.

整流程逻辑:接收登录参数,判断登录账号密码是否正确,正确的话,生成token,存到redis, 然后返回登录逻辑

这里过期时间暂时设置的60秒

postman测试通过,token逻辑也十分简单,就是个密码md5+时间戳再md5

这里并没有设计前后端通信的加密逻辑,基本都是post铭文传输,后续看有没有时间做吧

cors

开发阶段, 跨域问题我用的后端支持

省的前端做转发devserver那种

返回实体泛型类

其他工具类介绍

EncryptionUtil: 加密工具集, MD5, rsa, aes,base64编码等

redisutil: redis工具, redis在写功能上最大的好处就是设置过期时间,其他什么速度快啊什么的目前也没咋感觉到o(╯□╰)o,因为我没有实际项目呀....

fileutils: 读取json文件,这里注意一点:

只有这个方法才能在打成jar包的时候访问文件,另外一个方法是不可以的

ipkit: 请求ip地址,用来做锁ip的铺垫,之前做一个博客防重复刷评论的接口就用了这个

SpringContextUtil: 代码中获取当前调试环境

sql层用的mybatis,然后dao,pojo用的mybatis-generator,查看用的mybatis-plugin,分页什么的后面还是会用mybatis的pagehelper,mybatis三剑客永远不分家!

后端目前简单的逻辑都做好了,后面有需要的再提.

前端:

开发ide: VSCode(皮肤真香)

vscode写前端真是太香了! 各种插件可以装(想起Xcode逝去的青春, 伤心)

最主要讲的是axios的封装, 之前自己直接用的axios,请求模块基本没有封装,惨不忍睹,后面找了很久才找到个好用的,也学到了很多知识(掘金赛高!)

思想就是请求模块放到vue的原型链上,这样就没有侵入性了

请求的时候,直接调用$api对象进行请求,真的非常舒服,之前我都需要那个引入那个,不过这里是否对内存有影响我就暂时不管啦(promise强无敌)

也不知道讲些什么,前端这里工作还不多, 之前做了些vue文档测试, 后面会转正式的产品开发

目前也只是调通了网络请求,加了些工具集,目前我还在找一个比较简单的网站抄一下囧..........

等后面做出点东西再说...

之前写的这里都是不能看的~

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

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

相关文章

如何安装tensorflowGPU环境搭建(不报AVX2的警告)

TensorflowGPU版本无报错的安装安装pycharm安装Anaconda5.2.0装Visual Studio下载tensorflow,更新包,然后安装下载tensorflow更新一些包,不然会报错安装tensorflow gpu版本的包CUDA的下载和安装下载CUDA9.1安装pycharm 官网版本教育版本即可…

python实现dem输出三维模型_python DEM数据可视化

我们在进行地形拟合,或者进行地形分析的时候,尝尝需要将DEM数据可视化,来于其他数据进行比较。下面是pyrhon DEM数据可视化代码if __name__ __main__:filePath u"D:/test/fang" # 输入你的dem数据dataset gdal.Open(filePath)ad…

一道简单却易混淆的高等数学求极限题目

lim⁡x→∞(11x)x2ex\lim_{x \to \infty}\frac{(1\frac{1}{x})^{x^2}}{e^x} x→∞lim​ex(1x1​)x2​ 正确的解法: 一种错误的解法: 这是同学问我的,错在了哪里? lim⁡x→∞(11x)x2是否可以等于lim⁡x→∞ex?\lim_{x \to \in…

proe50安装方法64位_proe5.0安装方法64位

内容来自用户:陈新宏PROE5.0详细安装方法PROE5.0安装方法1:先安装虚拟光驱;.2.然后e68a8462616964757a686964616f31333433646431用虚拟光驱打开PROE5.0.如下图:3.然后点----工具-----加载到虚拟光驱。4.打开我的电脑出现了一个光驱。5.然后打开这个光驱。…

8086汇编求一组正整数{0x1223,0x1234,0x1434,0x2345,0x3412,0x1712}中的最大数并存在变量MAX中

编程求一组正整数{0x1223,0x1234,0x1434,0x2345,0x3412,0x1712}中的最大数并存在变量MAX中 DATAS SEGMENT X DW 1254H,1234H,1434H,2345H,3412H,1712H MAX DW ? DATAS ENDS STACKS SEGMENT;此处输入堆栈段代码 STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS ST…

html内容封装为一个对象_技术赋能还是内容为王,哪一个才是短视频创作的关键?...

12月23日,广东高校“校园发光者工作坊”计划宣讲活动走进华南师范大学,与同学们交流短视频创作的经验与心得。南方都市报N视频内容总监陈成效向同学们介绍了视频制作的“守破离”,以新闻报道为例,讲述如何通过预判和设计&#xff…

C/C++尾插法建立单链表

思路&#xff1a; 一个s指针指向新建节点 一个节点指向尾节点 C中有引用&#xff0c;写出来很简单&#xff0c;下面给出的是天勤数据结构高分笔记上面的写法&#xff08;疯狂吐槽这种C和C混用的方法&#xff09; #include<iostream> #include<stdlib.h>using nam…

python dataframe 列赋值_dataframe根据新列特征的条件为其赋值,给

方式一&#xff1a; 直接用比较 df[B]df[[B,C]].max(axis1)方式2 &#xff1a; dataframe.apply(自定义函数)df[label]df.apply(lambda x: label_get(x.time,x.broad),axis1)### 代码测试样例dates pd.date_range(20130101, periods6)df pd.DataFrame(np.arange(24).reshap…

vue生成静态html文件_vue单文件组件,如何生成.html文件

vue-cli项目怎么生成.html文件&#xff1f;项目使用了element-ui还有自定义的less文件vue组件&#xff1a;这是一段文字...生成......handlerBulder () {const html this.$refs.fields.outerHTMLvar a document.createElement(a);var url window.URL.createObjectURL(new Bl…

C++头插法尾插法建立单链表,合并两个有序单链表

A和B是两个单链表&#xff08;带表头结点&#xff09;&#xff0c;其中元素递增有序。设计一个算法&#xff0c;将A和B归 并成一个按元素值非递减有序的链表 C&#xff0c;C由A 和B 中的结点组成。 #include<iostream> #include<stdlib.h>using namespace std;typ…

Java毕业设计—springboot健身房管理系统

一、项目背景介绍&#xff1a; 随着人们生活水平的提高和健康意识的增强&#xff0c;健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求&#xff0c;需要一种更加高效、智能、安全…

C/C++二叉树前序遍历,中序遍历,后序遍历

二叉树的先序遍历&#xff0c;中序遍历&#xff0c;后序遍历 #include <iostream>using namespace std;typedef struct BTNode {char data;struct BTNode* lchild;struct BTNode* rchild; }BTNode;void preorder(BTNode* p) {if(p!NULL){cout<<p->data;preord…

学校校车运营各项安全管理制度_学校校车接送安全管理制度(通用3篇)

学校校车接送安全管理制度(通用3篇)在不断进步的时代&#xff0c;各种制度频频出现&#xff0c;制度是维护公平、公正的有效手段&#xff0c;是我们做事的底线要求。你所接触过的制度都是什么样子的呢&#xff1f;以下是小编为大家整理的学校校车接送安全管理制度(通用3篇)&…

osm数据下载 python_GIS Experience (十):OSM数据获取

参考资料 1 OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法 2 OSM获取路网数据 &#xff08;数据转换方法对比&#xff09;1 前言OpenStreetMap&#xff08;OSM&#xff09;意在创造一个内容自由且能让所有人编辑的世界地图&#xff0c;详见官网。2 数据获取2.1 …

两个字符串的最长公共子序列长度_程序员编程算法,解决文本相似度问题的最长公共子序列算法!...

在前面我讲解了如何通过最长公共子串来求解两个文本的相似度问题&#xff0c;但它有一定缺陷&#xff0c;举个例子&#xff0c;看下面的两个字符串我爱吃小青菜和各种鲜水果。我很爱吃青菜与各样水果。上面两个字符串&#xff0c;如果通过计算子串来求相似度&#xff0c;会发现…

VOC2007xml转YOLO的txt格式代码

使用方法&#xff08;二选一即可&#xff09;&#xff1a; python 这个文件名.py --xml_dir xml文件路径 --image_dir 图片所在路径 --out_dir 输出文件夹放在和VOC2007同级路径下运行即可 import os import xml.etree.ElementTree as ET import cv2 import argparse from tqd…

ctf up怎么写 write_??零基础写网络爬虫的思路??

网络爬虫&#xff0c;用一句话简单总结&#xff0c;就是一种按照一定的规则&#xff0c;自动的抓取万维网信息的程序或者脚本。写这篇文章的初衷是有个知友私信我说&#xff0c;模仿了很多网上用Python写爬虫的例子&#xff0c;但到了需要自己动手写爬虫的时候又不知道怎么写了…

VMwarestation环境下的centos7(Minimal)静态ip配置(桥接模式)

笔者本来是为了用三台centos7&#xff08;最小化安装版本&#xff09;的虚拟机搭建一个Zookeeper的环境&#xff0c;但是在搭建的过程中遇到了一些问题&#xff0c;遂记录之。 为了便捷&#xff0c;除了希望三台配置了静态ip的虚拟机可以和宿主机之间互相ping通之外&#xff0…

技术系统进化法则包括_技术系统进化论,模式五、技术集成以增加系统功能

阿奇舒勒TRIZ理论三个核心思想&#xff1a;1、无论是一个简单产品还是复杂的技术系统&#xff0c;其核心技术的发展都是遵循着客观的规律发展演变的&#xff0c;即具有客观的进化规律和模式&#xff1b;2、各种技术难题和矛盾的不断解决是推动这种进化过程的动力&#xff1b;3、…

zookeeper一键启动关闭JAVA_HOME在PATH中找不到报错踩坑记

最近看了尚硅谷的zookeeper教程&#xff0c;在集群环境搭建中&#xff0c; 有这么一个脚本zk.sh用来一键启动和查询 #!/bin/bash case $1 in "start"){ for i in zknode2 zknode3 zknode4 doecho ---------- zookeeper $i 启动 ------------ ssh $i "/opt/modu…