天道酬勤,学无止境

博客

axios携带token封装及AsyncStorage存储token实现

ReactNative项目中,本地存储通常使用AsyncStorage AsyncStorage中getItem()返回一个Promise 在封装的Axios中,拦截请求,将本地存储中的token放进headers里 OK,直接开始看实现! 具体实现 localStorage.js 对AsyncStorage的简单封装,实现功能 //本地存储 //在登录的部分,调用并把token存至本地 export const setStringValue = async (key,value) => { try { await AsyncStorage.setItem(key, value) } catch(error) { console.log(error); } console.log('Done.') } //从本地获取token export const getToken = async(key) => { try { return await AsyncStorage.getItem(key); }catch(error) { console.log(error); } } axios.js 封装axios的文件,统一添加axios的headers 关键注意:由于AsyncStorage返回的是Promise,所以在拦截请求处理函数也要用异步函数,async function

2021-06-28 14:12:37   

Java程序员模拟面试,解析面试困扰和建议

模拟面试,相信大多数程序员都没有经历过,甚至还有从来没听说针对面试的辅导或者模拟面试啥的,所有的面试经验都来源于网上写的一些文章,然后再在面试的时候通过各种碰壁去揣测面试官在想啥。 前言 前几天组织了一次模拟面试直播,这次模拟面试主要是Behavioral Based,和专业无关,每人大约45分钟时间,其中30分钟面试,15分钟针对面试结果给出反馈,当然根据面试官的风格可以自己调整。 在模拟面试的过程中,我问了一些我平时面试常问的问题,在得到回答后,我会根据面试者的回答,来解释这个问题我问的目的是什么,期望的结果是什么,可以如何做的更好。以下是一些具体的问题。 介绍下你做过的项目 这个问题每个人都能回答,我问这个问题的目的,就是需要通过这问题的答案了解这一批面试的人: 在项目中独立完成了哪些事,取得了什么成绩在项目中是如何和其他人团队协作的 在回答这个问题时,一个常见的问题是没有通过数字来量化的解释他做的事情。比如一位面试者他说他去年暑假去一个单位实习,帮助写了一些Excel的脚本帮助提升了处理报表效率,我建议他可以加上具体的数字,于是他修改了以下,说在没有用他的脚本之前,公司要有专人每月花10个小时左右的时间处理报表,在用了他的脚本之后,只需要花不到3小时就可以完成。这样听起来就让人印象深刻多了。 还有一个常见问题就是太啰嗦,讲了几分钟流水账,没重点

2021-06-28 14:12:34   

经验之谈之如何开一场有效的会议

文章目录 一、会前应做哪些准备二、会议过程中要注意的事项三、会议结束需要做哪些跟进3.1 会议纪要3.1跟进 大家有没有遇到这样的情况,会议好多,而且有的会议开了一遍又一遍,总也得不出个结论?一个会议开几个小时,大部分时间都是某两三个人在那儿争执不下,谁也说服不了谁,其他人就坐在那“旁听”,越扯越远,时间越拖越长,心里面不爽,想走又不太好意思,觉得这些个会开得实在没意思,以前的我也经历过好多这样的会议,不忙的时候还行,反正在哪坐着都是坐着。忙的时候,听他们扯完,我还得回去加班,心里着实不爽。 那么如何摆脱这种困境,如何开一个高效的会议呢?下面分三步曲谈谈我的经验。 一、会前应做哪些准备 会前准备要解决的问题有: 发起会议的背景、会议主题、会议想要达成的目标是什么? 回答好这几个问题,那么我们就大致知道这次开会的内容了,明确好主题及要解决的问题,这样可以让会议更有针对性,不至于大家来参加会议了,还不知道是为什么?是否与我有关?是否会牵扯到我的利益?会前与会人员对会议有个大致了解还有个好处是,大家会在脑子里提前准备好问题或者想表达的观点,这样会议会更高效。 与会人员有哪些 即跟这次会议主题有关的人有哪些,这些人参加即可,无关的人就不要邀请了,浪费大家的时间,而且这些人也不会有参与讨论的积极性。 会议时间、地点确定好 时间这个要和相关人员约定好,避免与他人其他的工作安排冲突了

2021-06-28 14:12:29   

前端Vue中文件导出下载方式

第一种方式是前端创建超链接,通过a标签的链接向后端服务发get请求,接收后端的文件流,非常简单: <a :href='"/user/downloadExcel"' >下载模板</a> //直接链接到请求的接口 另一种情况是创建div标签,动态创建a标签: <div name="downloadfile" onclick="downloadExcel()">下载</div> function downloadExcel() { let a = document.createElement('a') a.href ="/user/downloadExcel" a.click(); } 还有一种补充: function downloadExcel() { window.location.href = "/tUserHyRights/downloadUsersUrl"; } 第二种方式通过创建iframe的方式: <el-button size="mini" class="filter-item" type="primary" icon="el-icon-download" @click="handleExport(scope.row)">导出</el-button> //method方法: handleExport(row) { var elemIF = document

2021-06-28 14:12:25   

VS Code配置选中后相同内容高亮功能_类似于source insight 中的shift+F8高亮功能

目录 1.安装highlight-words插件 ​ 2.设置快捷键 3.效果 4.不是highlight-icemode 1.安装highlight-words插件 搜索highlight-words,然后安装。 安装完成之后需要点击一下reload才能使用,如下图所示。 2.设置快捷键 左下角的setting按钮,然后选择Keyboard Shotcuts。 然后输入Highlight Toggle,可以吧快捷键设置成自己喜欢的方式,我这里是设置成了alt+1 3.效果 同样的单词用同一个颜色标注出来了,要想取消就再按一次alt+1。 4.不是highlight-icemode 有的博客安装highlight-icemode,这个的效果并不好,选中之后鼠标挪开之后高亮消失,这种只能让一个单词高亮,而上面的highlight-words可以同时让很多个单词高亮,highlight-icemode效果如下。 来源:https://blog.csdn.net/u013171226/article/details/108868425

2021-06-28 14:12:17   

当前经济下副业兼职,月入1万+,门槛低易上手

当前经济下副业兼职,月入1万+,门槛低易上手 社会发展越来越快,大家手上只有一份正职是没有安全感,今天小证就来给大家介绍几种低门槛易上手的兼职副业,希望大家都能借助互联网东风作出一番事业! PS:网络上有很多类似的文章,但很多渠道和方式都未必适合新手,小证筛选的渠道都靠谱,请大家放心尝试,祝大家早日实现副业成功! 自媒体 简单来说是通过写文章、剪视频、直播等形式来赚钱。 平台有很多,常见有微博微信、今日头条、小红书、知乎、豆瓣、简书等,都可以将你自己的经验、经历分享出来的,如果内容优质平台会给你推荐,阅读量不用担心,只要持续并坚持创造原创的内容即可。看到很多博主一个账号月入至少4-5K,别说有好几个平台的那种了,都是月入过万的。不少人都是直接辞掉主业专心搞自媒体副业。 怎么赚钱?我用今日头条来举例子 第一种:一般文章下面都会有“广告投放”,可以选择,当用户看到你的文章阅读到最后,就会点击广告,这时候你也有收益。 第二种:平台的写作扶持,会根据时事热点和社会话题刺激作者创作,优质内容直接有奖金奖励,最高都是几万起步的。 第三种:广告主直接找,当你在某一个领域的内容够垂直够丰富,就会有品牌方主动联系你,例如我这个是科技号,粉丝们都是爱潮流爱新鲜事的大好青年,品牌方觉得他的目标群体跟我平台相同,就会请我写产品推介文。 问答回复 咱们经常刷知乎刷今日头条(悟空问答)

2021-06-28 14:12:11   

Mybatis的Executor执行器

Executor功能概述 每一个sql语句的执行都会先到Executor执行器中在调用相应StatementHandler执行jdbc操作。源码如下SimpleExecutor中的代码片段 public <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { Statement stmt = null; try { Configuration configuration = ms.getConfiguration();    //调用StatmentHandler,通过控制器调用jdbc相关操作 StatementHandler handler = configuration.newStatementHandler(wrapper, ms, parameter, rowBounds, resultHandler, boundSql); stmt = prepareStatement(handler, ms.getStatementLog()); return handler.query(stmt, resultHandler); }

2021-06-28 14:12:07   

Istio组件日志与请求日志采集方案

Istio日志方案 背景说明 为方便故障定位、问题溯源和运营分析,采集istio组件日志、请求日志和业务日志是服务网格落地的重要步骤之一。默认情况下,istio相关日志打在容器内,pod销毁重建后日志消失。此外,istio日志量没有预估和分级,很可能出现日志量过大而导致k8s集群不稳定等风险。 关键问题 Istio默认情况下,日志易丢失、难查找和未分级,很容易出现遗漏关键日志和占用磁盘空间过大等问题。在72h疲劳压测过程中,还发现istio组件磁盘读写过大、时区不一致和未限制资源等问题。 解决方案 实现思路 为了合理地分级采集istio日志,并控制日志磁盘利用率,该方案将istio日志输出路径重定向到宿主机的data数据盘,然后使用filebeat组件将日志录入ELK集群。具体实现过程如下: 明确需要采集的日志类型,如关键组件日志、接口请求日志和业务输出日志;2. 采用istio方式部署bookinfo和testistio 2个测试项目,以观察isito日志状态;查看istio官方文档和登录容器,以确定组件、业务和请求日志的输出路径;调整istio组件日志配置并挂载本地卷,将组件日志落到/data/log/istio目录;修改istio stdio日志适配器配置,将请求日志落到/data/log/istio/stdio目录;挂载/data/web_log/<project_name

2021-06-28 14:12:02   

深入理解JVM的内存结构及GC机制

转载:深入理解JVM的内存结构及GC机制 一、前言 JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,C++需要开发者自己实现垃圾回收的逻辑,而JAVA开发者则只需要专注于业务开发,因为垃圾回收这件繁琐的事情JVM已经为我们代劳了,从这一点上来说,JAVA还是要做的比较完善一些。但这并不意味着我们不用去理解GC机制的原理,因为如果不了解其原理,可能会引发内存泄漏、频繁GC导致应用卡顿,甚至出现OOM等问题,因此我们需要深入理解其原理,才能编写出高性能的应用程序,解决性能瓶颈。 想要理解GC的原理,我们必须先理解JVM内存管理机制,因为这样我们才能知道回收哪些对象、什么时候回收以及怎么回收。 二、JVM内存管理 根据JVM规范,JVM把内存划分成了如下几个区域: 1.方法区(Method Area) 2.堆区(Heap) 3.虚拟机栈(VM Stack) 4.本地方法栈(Native Method Stack) 5.程序计数器(Program Counter Register) 12345 其中,方法区和堆所有线程共享。 2.1 方法区(Method Area) 方法区存放了要加载的类的信息(如类名、修饰符等)、静态变量、构造函数、final定义的常量、类中的字段和方法等信息。方法区是全局共享的,在一定条件下也会被GC

2021-06-28 14:11:57   

如何用 Python 做自动化测试【进阶必看】

Time will tell. 一、Selenium 环境部署 1.window 环境部署 1.1 当前环境 Win10 64 位系统;Python3.6.2(官方已经更新到了 3.6.4) 官方下载地址:https://www.python.org/downloads Selenium 3.4.3;谷歌 59。 1.2 Python3 安装部署 Python 的安装接触编程语言中很简单的语言了。不需要繁琐的 JDK,也不需要 SDK。直接到官网下载,配置环境就成功了。 首先到官网下载我们需要的 Python3 版本: 点进去直接下载: 1.3 配置环境变量 安装好之后,我们就可以在文件夹看到我们下载好的 Python 文件了。 路径为: D:\python3.6.2。 现在我们去配置环境变量吧。 回到桌面,同时按下 WIN+R 键,打开 “运行” 对话框,输入 sysdm.cpl,单击 “确定” 按钮: 选择 “高级” 选项卡: 编辑当前路径: 到这里,我们配置环境就已经完成了,但是还是需要验证我们是否成功安装的。按 WIN+R,打开 “运行” 对话框,我们输入 cmd: 输入 python: 显示版本信息就证明已经部署成功了,接下来就可以开始学习python了。 1.4 安装 Selenium 现在我们就可以直接安装 Selenium 了,重新打开 cmd 窗口,输入:pip

2021-06-28 14:11:46