08 2019 档案
摘要:在编写T-SQL语句的时候,SQL Server提供了三种方法临时存储某些结果集,分别是临时表、表变量和公用表表达式。 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户退出SQL Server环境,临时表会自动被删除。临时表有两种,一种是本地临时表,仅在当前会话中可见
阅读全文
摘要:Element-UI提供了tabs组件(选项卡、多页签),其中在tabs的属性中提供了一个value/v-model属性来绑定默认选中的页签。 我们通过简单的示例来看一下具体是怎么使用的。 这里我将v-model的属性值设置为activeTab,接下来就可以在JavaScript中对这个属性值进行数
阅读全文
摘要:很久之前看过vue的一些原理,对其中的双向绑定原理也有一定程度上的了解,只是最近才在项目上使用vue,这才决定好好了解下vue的实现原理,因此这里对vue的双向绑定原理进行浅析,并做一个简单的实现。 vue双向绑定的原理浅析 vue数据的双向绑定是通过数据劫持,并结合发布-订阅模式的方式来实现的。
阅读全文
摘要:使用Spring Boot进行单元测试时,发现使用@Autowired注解的类无法自动注入,当使用这个类的实例的时候,报出NullPointerException,即空指针异常。 Spring Boot中的单元测试 先简单说一下Spring Boot中的单元测试。 要在Spring Boot中使用单
阅读全文
摘要:用CSS3实现彩虹文字的效果,只在Webkit内核的浏览器(谷歌浏览器或移动端)上有效果。 background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f
阅读全文
摘要:Redis的过期键的过期时间都保存在过期字典中,过期键的删除策略有三种,分别是定时删除、惰性删除和定期删除。 定时删除 定时删除策略,是指在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间到的时候,立即执行对键的删除操作。 定时删除策略的优点 对内存友好,通过定时器可以保证过期键能尽可
阅读全文
摘要:从SQL Server 2005开始,提供了CTE(Common Table Expression,公用表表达式)的语法支持。 CTE是定义在SELECT、INSERT、UPDATE或DELETE语句中的临时命名的结果集,同时CTE也可以用在视图的定义中。 在CTE中可以包括对自身的引用,因此这种表
阅读全文
摘要:这里贴出JavaScript导出csv文件(excel)的代码。 上面的写法,如果excel中的数据太多,就会导致无法导出的结果,原因是浏览器对URL的长度有限制,因此要使用Blob对象和window.URL.createObjectURL()方法做一下改造。 window.URL.createOb
阅读全文
摘要:假定有一个a表,一个b表,要将a表的数据拷贝到b表中。 1.如果a表和b表结构相同。 2.如果a表和b表的结构不相同。 3.如果b表不存在。 "多希望我只是个孩子,给颗糖就笑,摔倒了就哭。不用伪装到面目全非,不用压抑自己的心情,笑着说无所谓,却往往笑得越开心,心里越疼。"
阅读全文
摘要:使用了eslint语法检查之后发现JS代码里面处处是红线,通过右键菜单中的fix eslint problems选项又会发现页面代码的格式被eslint换行得不分青红皂白,索性关闭exlint语法检查算了,眼不见心不烦,反正关闭又不影响代码开发,开着反而会(姨母式微笑)。 关闭eslint位置:Fi
阅读全文
摘要:将【.crx】后缀的文件拖拽至谷歌浏览器开发者模式下的扩展程序管理页签时,报错【CRX_HEADER_INVALID】,即此插件无效的错误。 安装失败的原因 原因在于谷歌浏览器在新版本中添加对第三方插件的限制,会对文件中的文件头进行官方校验,非官方渠道的插件不允许安装。意思就是,只允许从谷歌的官方商
阅读全文
摘要:在前后端分离的模式下,所有的交互场景都变成了数据交互,因此传统业务系统中的权限控制方案在前端已经不再适用(比如使用后台模板标签进行权限控制),需要另外设计权限控制方案。 权限控制的概念 要理解权限控制,需要明白两个概念:资源和权限。 资源:对于一个系统来说,系统内部的所有信息都可以理解为是这个系统的
阅读全文
摘要:IDEA有个很牛逼的功能,那就是后缀补全(Postfix Completion),这个功能可以通过后缀来使用代码补全进行模板式地补全语句,如遍历循环语句(for、foreach)、使用 String.format() 包裹一个字符串、使用类型转化包裹一个表达式、根据判(非)空或者其它判别语句生成 i
阅读全文
摘要:简单说一下场景。 假设有A、B、C和D四个JSP页面,D通过iframe嵌套在C中,C通过iframe嵌套在B中,B通过iframe嵌套在A中。 然后现在在D中编写JavaScript代码跳转页面。 在本页面跳转(D页面所在的iframe中跳转) 在上一层跳转(D页面所在iframe的父页面中跳转,
阅读全文
摘要:在使用Maven插件编译Maven项目的时候报了这样一个错:【Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符】,这里记录下出现这个错误的原因以及解决这个问题的方法。 问题出现的原因 diamond运算符,指的是JDK1.7的一个新特
阅读全文
摘要:现在很火的微服务架构所设计的系统是分布式系统。分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency)、可用性(Availablility)和分区容错(Partition Tolerance)三个特性是一件不可能的事情。 CAP理论的简介 CAP理论是由Eric
阅读全文
摘要:我们知道,在idea中是可以通过【ctrl+鼠标左键单击】去跳到方法调用方去的,但是在eclipse中却是不行的。 三种快捷键方式 这里列出在eclipse中查看一个方法被谁调用的三种方式(快捷键)。 1.双击选中该方法,按下【Ctrl+Alt+H】快捷键(首推)。 eclipse会显示出这个方法被
阅读全文
摘要:SSH就是Struts2+Spring+Hibernate。 三个组件的简单介绍 Struts2:通俗的讲就是为了完成MVC模型中的C的功能,也就是编写具体的业务逻辑的地方。从他的设计上来看就是请求到了web容器,然后经过了一系列的过滤器,再通过请求FilterDispatcher询问ActionM
阅读全文
摘要:前后端分离是现在互联网项目开发的业界标准使用方式,我们来看看它的发展。 前后端未分离时代(各种耦合) 这个时代可以叫做MVC时代,因为主要是使用MVC框架。 大致就是,所有的客户端请求都被发送给作为控制器的Servlet,它接收请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet
阅读全文
摘要:Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对于EJB的(虽然本人从来没有接触过EJB的应用),但重要的是Spring是非侵入式的,基于Spring开发应用一般不依赖于Spring的类。 Spring中的一些概念 DI(Dependency Injection,依赖注
阅读全文
摘要:RPC(Remote Procedure Call,远程过程调用)是一个很大的概念。它是一种通过网络从远程计算机程序上跨语言跨平台的请求服务。RPC能省略部分接口代码的开发,可以跨机器之间访问对象(Java RMI),可以有更方便的加密和更高效的数据传输性能,而不需要了解底层网络技术的协议。RPC不
阅读全文
摘要:同一个电商圈同一个愿望,那便是【爆单】。 想必许多卖家都遇到过这种状况,为了改进空有流量而无订单的状况,许多卖家都急病乱投医,对着自家Listing一顿操作猛如虎,成果订单量仍是缺乏二十五,形成这种成果的原因一般是因为卖家们踩中了关键词误区的大坑。 误区一:为了添加产品的曝光率,常常把一些热度特别高
阅读全文
摘要:HTML5中提供了一个<audio>标签,同时也提供了一个Audio对象给JavaScript去操作,这个对象属于HTML的DOM对象。 H5中的<audio>标签 此标签是HTML5的新标签(双标签),用于定义声音,比如音乐或其他音频流。 实例 同时此标签提供<source>子标签(单标签)来链接
阅读全文
摘要:使用linux肯定是要会使用命令的,就算提供有用户界面,绝大部分功能还是要通过命令行去操作的。而shell脚本语言也是运行在linux上的脚本语言,对于服务器运维人员也是几乎必须要掌握的。而shell脚本语言和linux命令有什么联系,有什么区别,也是要弄清楚的。 什么是shell,shell与li
阅读全文
摘要:进程之间的通信方式有管道、消息队列、共享内存、信号量和Socket五种方式。 管道 来看一条Linux的指令: 学过Linux命名的估计都懂得这条指令的含义,其中的【|】就是管道的意思,作用是把前一条命令的输出作为后一条命令的输入。在这里就是把netstat -tulnp的输出结果作为grep 80
阅读全文
摘要:这里了解一下JavaScript中的发布订阅模式和观察者模式,观察者模式是24种基础设计模式之一。 设计模式的背景 设计模式并非是软件开发的专业术语,实际上设计模式最早诞生于建筑学。 设计模式的定义是,在面向对象软件设计过程中,针对特定问题的简洁而优雅的解决方案。通俗一点说,设计模式是在某种场合下对
阅读全文
摘要:随着移动网络的发展与演化,我们手机上现在除了有原生APP,还能跑WebApp,它即开即用,用完即走。一个优秀的WebApp甚至可以拥有和原生App媲美的功能和体验。WebApp优异的性能表现,有一部分原因要归功于浏览器存储技术的提升。Cookie存储数据的功能已经很难满足开发所需,逐渐被WebSto
阅读全文
摘要:前端开发很容易会遇到jQuery库与其他库冲突的场景,比如和prototype库冲突。 实际上这种冲突是因为不同的第三方JS库争夺对$标识符的控制权引起的。 解决方法,就是使用jQuery提供的jQuery.noConflict()方法,释放$标识符的控制,使其他的脚本可以使用$标识符而不会引起冲突
阅读全文
摘要:如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始的那一秒是一条很直很直的直线,这时因为秒杀请求在时间上高度集中于某一个特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。 对于秒杀这个场景来说,最终能够抢购到商品的人数是固定的。也就是说,100个人和1
阅读全文
摘要:从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问在不断地经受考验。为了适应架构的变化、需求的变化,身份认证与鉴权方案也在不断地变革。面对数十个甚至上百个微服务之间的调用,如何保证高效安全的身份认证是个难题。面对外部的服务访问,如何提供细粒度的鉴权方案也是个难题。 单体应用VS微服务 随着
阅读全文