- 博客(19)
- 问答 (1)
- 收藏
- 关注
原创 goroutine的传统同步机制
goroutine的传统同步机制goroutine是go的轻量级“线程",也叫协程。它有以下几个特点:轻量级“线程”非抢占式多任务处理,由协程主动交出控制权编译器、解释器、虚拟机层面的多任务多个携程可能在一个或多个线程上运行go推荐的goroutine之间的同步机制是channel,基于CSP(Communication Sequential Process)模型,经典名:不要使用共享内存来通信,要使用通信来共享内存。但是本篇文章并不将CSP模型,而是回到传统的同步机制:WaitGrou
2020-08-31 11:41:02 226
原创 前端如何识别浏览器类别+Blob流如何兼容IE
前端如何识别浏览器类别+Blob流如何兼容IE浏览器识别和兼容如何识别浏览器类别Blob流兼容IE10-11浏览器识别和兼容作为一个后端开发,有时候也要写写前端代码,但是如果让我兼容IE浏览器,我只能够祭上这张图:。如何识别浏览器类别var agent = navigator.userAgent.toLowerCase();console.log(agent); var arr = []; var system = agent.split(' ')[1].split(' ')[0].spl
2020-07-20 14:57:37 1449
原创 SpringBoot通过Mybatis配置多数据源的时候,为何无法加载mybatisAppConfig.xml文件中的枚举处理类typeHandler?
一般在SpringBoot项目中,都是通过mybatis-generator插件读取generatorConfig.xml自动生成mapper.xml文件、Mapper.java、entity实体类等。如果有枚举类转换处理,可以放到mybatisAppConfig.xml文件中配置。然后,通过设置一个简单的数据源配置类就可以了,如下:@Configuration@MapperScan("...
2018-12-18 22:37:00 1174
原创 IDEA中安装go插件,如何能够配置go SDK?
最近在学习go语言,一个是因为区块链的技术热潮,另一个是接手的项目有用到go写多线程高并发,因此决定自学go。第一个遇到的问题就是环境!通过一个晚上的摸索,大概步骤如下:在IDEA中先打开settings——>Http Proxy,设置代理,否则你是无法下载go插件的!进入settings——>plugins——>Browse repositories从浏览器中下载插件:上图中一...
2018-06-04 21:24:28 16060 1
原创 基于SpringBoot框架的单元测试和集成测试的区别和联系
1、单元测试和集成测试的区别:Web集成测试:在嵌入式的Servlet容器(Tomcat,Jetty)里启动应用程序,在真正的应用服务器里进行测试。Spring Mock MVC :能在一个接近真实的模拟Servlet容器里启动应用程序,而不用实际启动应用服务器,相当于单元测试。2、可以采用Spring MVC进行单元测试,包括:standaloneSetup():手工创建并配置的控制器w
2017-12-19 19:56:26 4178
原创 idea中安装redis插件以及使用指南
redis是很多企业优化数据存储的一个重要考虑方向,一般我们都会下载一个redis客户端进行访问。我的前一篇关于redis的文章也是用的redis desktop manager来访问远程redis的。 但是这些客户端有时非常不友好,例如想要查看某个key下面的value,需要使用get命令才可以,而且格式没有。 因此,我推荐使用intellij IDEA中的Iedis插件,非常
2017-11-14 20:09:56 45688 16
原创 mysql数据库优化方案之explain执行计划
数据库优化中的explainexplain作用: 是在执行某条SQL(复杂的)与之前,采用explain先测试一下这个SQL语句的性能如何,可以从是否使用索引,主从表格等方面来评估你的SQL语句质量。explain执行计划的结果:如果是复杂查询,在select_type中只有一个primary,但是会有多个 derived(派生类);其中,derived导出类是针对原表的;在inner
2017-11-11 12:15:49 1581
原创 java代码编程规范
(1)if与else之间不要有注解打断 (2)在写代码的时候,注意看右边黄色的警告 (3)if和else之间嵌套太多,如果某个条件没有执行语句,可以先return,这样就不用写else了 (4)if和else最好先写短的,在写长的,也建议先写条件为true,再写false的 (5)在函数内部的注释是//,函数上面的注解是/ * *,如果是成员变量,注解是/ * * (6)尽量使用St
2017-11-11 10:43:27 298
原创 RedisTemplate缓存用法小记
1、下载一个客户端:Redis Desktop Manager2、redis的引用包:<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.6.RELEASE</version></dependency>
2017-11-09 19:36:51 20661 1
原创 如何在windows上运行一个javascript脚本
如何在windows上运行一个javascript脚本最近要测试一个公司内部行政数据、人员数据等的同步, 需要很多测试数据。为了方便,就写了一个js脚本自动生成测试数据,但是却不知道如何单独运行这个js脚本:首先在电脑上装nodecmd进入命令行进入到js所在的目录运行 node npm -i 运行 node XXX.js完成
2017-11-09 11:54:53 16043
原创 SpringBoot+Mybatis框架项目的单元测试和集成测试(下)
集成测试集成测试需要启动服务,并且连接数据库,因此配置这一块要做到位。本人之前没有接触过SpringBoot集成测试,故踩了以下3个大坑,希望分享给大家!问题1:SpringBoot的自动装配、yml文件都无法导入 在测试过程中,发现如果只是添加:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {
2017-08-30 08:31:56 13769
原创 SpringBoot+MyBatis框架的项目单元测试+集成测试(上)
单元测试这是我的项目目录结构: 其中,所有的SQL操作都在mapper.xml中 单元测试 采用了Mockitoverify方法: 验证方法执行过几次: verify(tBookController, times(1)).queryTBookByName(captor.capture()); 如上代码所示,验证了tBookController的queryTBookByNa
2017-08-29 08:35:14 6852
原创 如何在Vue中插入echarts图表
vue中插入echarts表格和普通的html页面非常不一样,因为vue自身是携带echarts插件的。再加上vue具有生命周期的概念,页面加载之前、页面加载中都有不一样的函数来实现,因此加载一个echarts图需要在多个地方联合实现!1、<template>中添加echarts容器首先,需要在<template>中注明将echarts图片插入到哪个div容器中:<div class="box-bo
2017-05-25 10:42:35 3350
原创 Ubuntu下Vue.js+webpack的安装(nodejs版本纠正)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-05-18 14:05:29 2995
原创 Ubuntu下Vue.js+webpack的安装
1、需要安装nodejs,最好是新一点的版本:(1)安装依赖包Python 2.6,Ubuntu默认已经安装;(2)安装g++ 命令:sudo apt-get install g++ curl libssl-dev apache2-utils(3) 安装git命令:sudo apt-get install git-core(4)下载源码命令:git cl
2017-05-09 20:17:23 2496
原创 虚函数、纯虚函数在C++和java中的区别
1、虚函数C++中:virtual 返回类型 函数名( 参数列表 ){ 函数体 }Java中:所有普通的成员方法(没有被static/native等关键字修饰)如果没有声明为final,那么都默认是virtual的,可以被派生类(子类)override(重写)2、纯虚函数C++中:virtual 返回类型 函数名(参数列表)= 0;即没有函数体的虚函数,任何包含纯虚函数的类
2017-03-24 16:24:48 994
原创 避免硬编码,json读取配置项,和代码分离
为了避免硬编码,尤其是在使用git对项目版本进行管理的时候,我们需要将配置从代码中分离出来。可以将配置信息放入到json文件中:configure.json文件如下:{ "port": "2181", "quorum": "192.168.1.103", "master": "192.168.1.103:60000", "fs": "hdfs://192.168.1.103
2017-03-15 21:25:26 619
转载 霍夫曼前缀编码
作为哈夫曼树的一个重要应用,我们来介绍哈夫曼编码。在我的上一篇博文《树之哈夫曼树》中已经介绍了建立哈夫曼树的过程,而由哈夫曼树求得的编码为最优前缀码。 每个叶子表示的字符的编码,就是 从根到叶子的路径上的标号依次相连所形成的编码,显然这就是该字符的最优前缀码。 所谓 前缀码 是指,对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,比如常见的等长编码就是前缀码。所谓 最优前缀
2016-11-07 13:04:25 2022
转载 使用HTTPS防止流量劫持
何为流量劫持前不久小米等六家互联网公司发表联合声明,呼吁运营商打击流量劫持。流量劫持最直观的表现,就是网页上被插入了一些乱七八糟的广告/弹窗之类的内容。比如下面这种:页面的右下角被插入了广告。流量劫持总体来说属于中间人攻击(Man-in-the-Middle Attack,MITM)的一种,本质上攻击者在通信两端之间对通信内容进行嗅探和篡改,以达到插入数据和获取关键信息的目的。目前
2016-04-16 17:10:57 3297
空空如也
SpringBoot+MyBatis框架的项目,如何进行集成测试?
2017-08-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人