- 博客(120)
- 收藏
- 关注
原创 Mybatis自定义SQL更新JSON字段抛错
Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property ‘carouselPic’. It was either not specified and/or could not be found for the javaType ([Ljava.lang.Strin...
2020-02-23 20:52:14
1382
1
原创 推荐VSCode12个比较实用的插件
1、Auto Rename Tag ——自动重命名成对的HTML标记。假如你创建了一个标记。现在你想更改它。有了这个软件,你只需要更改一个就行,另一个会自动修改。从理论上来说,使用这个软件可以把你的工作效率提升一倍。2、HTML CSS Support ——HTML文档的CSS支持工具。该工具在获得一些简洁的语法高亮显示和代码建议方面非常有用。3、HTML Snippets ——这一工具在代码...
2020-02-23 20:49:06
307
原创 SpringBoot图文教程5—SpringBoot 中使用Aop
有天上飞的概念,就要有落地的实现概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例文章结尾配套自测面试题,学完技术自我测试更扎实概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍大哥大姐新年好,点赞转发不要少SpringBoot 图文系列教程技术大纲鹿老师的Java笔记SpringBoot 图文教程系列文章目录SpringBoot图文教程1「概念+案例 思维...
2020-02-23 20:46:57
120
原创 在Notepad ++中删除空行
如何在Notepad ++中替换空行? 我尝试了一个find并用find中的空行替换,并且替换中没有任何内容,但它没有用; 它可能需要正则表达式。#1楼如果空行包含制表符或空格,这显然不起作用。 由于HTML编辑器出错,许多网页(例如http://www.guardian.co.uk/ )都包含这些白线。使用正则表达式删除空格,如下所示:改变模式:[\ t] + $什么都没有。其中[\ ...
2020-02-23 20:46:07
881
原创 WPF 的内部世界(控件与布局)
我一开始算是比较抵触WPF的,因为用的人少吗。感觉都是窗体应用能和Winform有什么区别。可是我错了,非常感谢我的讲师,给我推荐刘铁猛的《深入浅出WPF》,让我了解到了WPF的魅力——数据驱动UI 。所以,这么优秀的框架,我想写下来,都知道WPF开发人员非常少,以至于大部分教程视频都是10年前的。我记录下来,不是为了什么,是真的喜欢WPF,那种“怪诞不经”的感觉。一、UI布局俗话说:“人靠...
2020-02-23 17:49:08
346
原创 Kotlin中的表达式、语句以及猫王
Kotlin在Android开发领域已经有很长一段时间了,从去年开始也致力于在团队中推广Kotlin在项目中进行产品开发,相比于Java,我们更关注的就是Kotlin编译移动端代码的快速(大量的语法糖)、空安全、与Java的高度融合以及google的大力扶持(现在官网上的代码几乎都是Kotlin来写的)。虽然Kotlin与Java同为jvm语言,而且语法很像,学习成本较低,但是有些点还是需要注意下...
2020-02-23 17:47:09
522
原创 vue微信授权解决方案
之前是自己太年轻,写什么【最终解决方案】。这一次的项目vue移动端电商项目,做了很多的优化。大家都知道授权需要每次都要发布到线上,本地的需要代理,这让我们很头疼。后面会介绍一个本地直接授权的方式,真的超级香。时隔几年,第三次升级我的微信授权,每一次思路都更加清晰,当我的知识越来越广,越来越深,我相信会有第四次,第五次。。。另外也优化:微信分享keep-alive返回到上次浏览的位置vue-rout...
2020-02-23 17:46:28
1463
原创 Java并发编程—结合源码分析ConcurrenthashMap与CopyOnWriteArrayList的原理
文章主要部分分析了两个并发容器的代表:ConcurrenthashMap和CopyOnWriteArrayList并发容器1.1 常用的并发容器ConcurrentHashMap:线程安全的HashMapCopyOnWriteArrayList:线程安全的ListBlockingQueue:阻塞队列(实现类:ArrayBlockingQueue、LinkedBlockingQueue...
2020-02-21 17:10:28
459
原创 15 个 Github 顶级 Java 教程类开源项目推荐!
大家好,我是 Guide 哥!今天给大家推荐 15 个新手也能看懂的 Java 教程方向的开源项目。这些项目无论是对于你学习 Java 还是准备 Java 方向的面试都非常有帮助。正如我第一个要推荐的开源项目 JavaGuide 说的那样:开源项目在于大家的参与,这才使得它的价值得到提升。JavaGuide简介 : 一份涵盖大部分 Java 程序员所需要掌握的核心知识。推荐理由 : Jav...
2020-02-21 17:09:47
345
原创 放弃 TypeScript 的 7 个非常好的理由
很多人都喜欢 TypeScript。它“解决”了 JS 的许多问题,是 JS 的一个“超集”,它将使代码易于阅读。有很多使用 TypeScript 的理由,但是我将给您 7 个不使用 TypeScript 的理由。TypeScript 有风险TypeScript 添加类型定义并在编译时检查类型,怎么会有风险?IDE 集成还会警告您有关类型不匹配的信息。不过问题也在这。TypeScript 仅在...
2020-02-21 17:08:54
1603
2
原创 Zygote进程启动
Zygote被称为孵化器,因为在Android中DVM、ART、应用程序进程以及系统服务进程(SystemServer)都是有它来创建的,而且是通过是通过fork的形式来创建应用程序进程和SystemServer,所以这些进程的内部会获取一个DVM或者ART的实例副本。下面我们重点看一下它的启动过程。Zygote启动时主要调用app_main.cpp的main函数中的AndroidRuntime...
2020-02-21 11:12:15
251
原创 127个常用的JS代码片段,每段代码花30秒就能看懂
大家好,首先感谢大家对上一篇文章 127个常用的JS代码片段,每段代码花30秒就能看懂(一)的关注,在上篇文章里分享了前21段代码,今天继续分享21段代码,希望对你的日常工作有所帮助。22、deepFlatten通过递归的形式,将多维数组展平成一维数组。const deepFlatten = arr => [].concat(…arr.map(v => (Array.isArray...
2020-02-21 11:10:49
334
原创 只需一行代码,你的纯文本秒变Markdown
Markdeep 是一个用来写纯文本的插件,它能以 Markdown 的语法与渲染方式纯文本,并在网页上展示。同时,除了 Markdown 语法,Markdeep 还额外支持图表、数学方程等扩展能力。项目主页:casual-effects.com/markdeep/我们先看看效果,如下左边是纯文本编辑器的编辑页面,右边是在浏览器上的渲染效果:Markdeep 非常容易使用,它也不需要安装插件或联网...
2020-02-20 10:45:54
462
原创 菜鸡前端一起学算法系列--第一天
写这些系列文章的初衷是因为面很多公司我都倒在了算法题上,一做算法题就感觉自己是个憨憨,所以要励精图治,吊打面试官,出这口恶气。本人作者水的一批,所以从0开始学算法题写了名字都是从leetcode上取得,可以通过标题搜到对应的题目。没写名字都是我平时的时候遇到的算法第一天:复杂度的计算O(1)耗时和输入无关,例如访问对象属性O(logn)当数据增大n倍的时候,耗时增加logn(这里...
2020-02-20 10:43:46
156
原创 实战 web 应用 Docker 镜像解耦交付
随着几次浏览器大战的硝烟散尽和 Flash 的背影远去,当下的 web 应用开发经过十余年的发展,在工程化、测试、持续集成等方面都已经汇入了软件开发的快车道。然而虽然新概念、新特性层出不穷,细分领域愈加专业化,但其究极奥义始终未变 – 不管你怎么折腾,生成出来的交付物仍是 HTML/CSS/JS 老三样等静态资源,加上若干动态请求 的形式。从直接把文件拖放到 FTP 软件中手动上传的刀耕火种时代...
2020-02-20 10:43:11
330
原创 正则表达式引擎执行原理——从未如此清晰!
目前越来越多的网站、编辑器、编程语言都已支持一种叫“正则表达式”的字符串查找“公式”,有过编程经验的同学都应该了解正则表达式(Regular Expression 简写regex)是什么东西,它是一种字符串匹配的模式(pattern),更像是一种逻辑公式。使用正则表达式去匹配字符串Hello World 中的 Hello伪代码:/Hello/, “Hello World”输出:Hello复...
2020-02-19 20:30:47
378
原创 从零开始配置 react + typescript(三):webpack
本篇为 从零开始配置 react + typescript 系列第三篇,将带大家完成模板项目的 webpack 配置。整个项目的配置我力求达到以下目标:灵活: 我在配置 eslint 是选择使用 js 格式而不是 json,就是为了灵活性,使用 js 文件可以让你使用环境变量动态配置,充分发挥 js 语言的能力。当然了,用 js 作配置文件也是有缺点的,不能使用 json schema 校验。...
2020-02-19 20:29:28
1567
原创 Vue中的MVVM思想
model-view-viewModel。model:数据模型view:视图层viewModel:可以理解为沟通view和model的桥梁他的设计思想就是关注Model的变化,通过viewModel自动去更新DOM的状态,也就是Vue的一大特点:数据驱动。Vue中用MVVM思想做什么1.通过数据操作DOM我们知道Vue使用简洁的模板语法来将数据渲染进DOM的系统。例如: {{…}}...
2020-02-19 20:06:07
507
原创 你可能不知道的iOS性能优化建议(来自前Apple工程师)
今天在推特上看到一篇关于性能优化不错的文章,是前苹果开发人员写的,翻译了一下与大家分享,原地址iOS Performance tips you probably didn’t know (from an ex-Apple engineer)作为开发人员,良好的性能对于使我们的用户感到惊喜和喜悦是无价的。iOS用户具有很高的标准,如果你的应用程序反应很慢或在内存压力下崩溃,他们将停止使用它,或者更...
2020-02-19 20:04:07
374
原创 一步一步实现Vue数据绑定
这阶段代码git地址如下:github.com/Ace7523/vue… 因为我学习的习惯就是一步一步的从简到繁增加功能,大家看时候对应的看提交版本的,这部分代码对应的是第一次commit。webpack新建一个vue项目,相信这个大家都知道了,我就无须赘述。我会把每个阶段的代码git地址提供出来。需要强调一点就是改了这里:作用是 import 引用依赖时候优先在指定目录下寻找,找不到的话再去...
2020-02-19 20:02:20
244
原创 如何高效地远程部署?自动化运维利器 Fabric 教程
关于 Python 自动化的话题,在上一篇文章中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一。Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本文将来介绍一下它。Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口。在 Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric...
2020-02-18 20:08:17
261
原创 一文带你怼明白进程和线程通信原理
进程是需要频繁的和其他进程进行交流的。例如,在一个 shell 管道中,第一个进程的输出必须传递给第二个进程,这样沿着管道进行下去。因此,进程之间如果需要通信的话,必须要使用一种良好的数据结构以至于不能被中断。下面我们会一起讨论有关 进程间通信(Inter Process Communication, IPC) 的问题。关于进程间的通信,这里有三个问题上面提到了第一个问题,那就是一个进程如何传...
2020-02-18 20:07:37
253
原创 TiOps脚本库如何使用
TiOps提供了脚本库的功能,用于统一存放和授权脚本。TiOps的脚本库,最大的特点是,它可以支持脚本版本的功能,有点gitlab网页版的感觉。登录TiOps,在左侧菜单栏中选择【脚本库】,默认里面是没有任何脚本的,需要我们先创建脚本库TiOps脚本库如何使用点击确定,一个脚本库就创建好了,创建完成之后,如下图TiOps脚本库如何使用左侧会有一个文件夹,默认名称和脚本库的名称相同,这里还...
2020-02-18 20:01:40
302
原创 彻底搞懂vue之vuex原理篇
你真的懂vuex吗?先抛出几个问题?命名空间的原理?辅助函数的原理?插件用法是否了解?为什么每个组件都能访问到store这个实例属性?为什么访问this.store这个实例属性?为什么访问this.store这个实例属性?为什么访问this.store.getters[‘a/xx’]而不是this.KaTeX parse error: Unexpected character: '�' at po...
2020-02-16 20:41:52
1260
原创 javascript正则表达式 | 知识梳理
正则表达式由pattern和flags组成,我不知道怎么翻译这个,我用我自己的话解释一下,pattern可以理解为一个函数(做什么), flags可以理解为参数, 比如flags为g为全局匹配,i为忽略大小写。字面量这种方法最方便简单// /pattern/flagslet reg = /\d/gconsole.log(reg)复制代码构造函数这种方法比字面量麻烦,它的pattern...
2020-02-16 20:40:32
122
原创 一文详解微服务架构
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。最初的需...
2020-02-15 22:25:03
177
原创 前端监控进阶篇 ——Sentry 监控 Next.js 项目实践
上一篇相关文章介绍了 Sentry 的基础篇 —— 本地安装,本篇文章以实际项目出发使用 Sentry 进行前端监控实践。实践案例选择 Next.js 项目,具体项目地址next-sentry-easy。上一篇:前端监控基础篇 —— Docker + Sentry 搭建前端监控系统开源社区存在很多搭建 Sentry 的文章,但是关于相关细节配置使用的实践文章其实并不多,对于新手来说不是很友好,...
2020-02-15 22:22:55
2435
原创 SpringBoot 实践-Filter 中的异常处理和 Controller 中的异常处理
本篇主要是记录如何使用 SpringBoot 所提供的 ErrorController 这个接口能力;其内置了一个 BasicErrorController 对异常进行统一的处理,当在 Controller 发生异常的时候会自动把请求 forward 到 /error 这个请求 path 下(/error 是 SpringBoot 提供的一个默认的mapping)。BasicErrorContro...
2020-02-15 22:21:48
2562
1
原创 Python 异步IO
CPU的速度远远快于磁盘、网络等IO。在一个线程中,CPU执行代码的速度极快,然而,一旦遇到IO操作,如读写文件、发送网络数据时,就需要等待IO操作完成,才能继续进行下一步操作。这种情况称为同步IO。在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无法被当前线程执行了。因为一个IO操作就阻塞了当前线程,导致其他代码无法执行,所以我们必须使用多线程或者多进程来并发执行代码,为多个...
2020-02-14 21:04:51
282
原创 从升级服务器系统聊聊编写脚本
当服务器运行几十天或几百天后,你总会收到需要报警、许多需求积压:又有严重漏洞了,软件如果不升级那么新的功能使用起来很麻烦…即使容器技术已经帮助我们减少了许多生产开发过程中对于服务器的依赖,然而运行容器的宿主机总归还是需要一些基础的维护。如果你的服务器数量不多,那么登陆每一台机器,然后执行命令显然效率并不低,但是如果需要维护的机器从几台变更为几十台后,你就不得不编写一些简单的脚本了。本文就来聊...
2020-02-14 21:03:21
302
1
原创 用原生JS封装一个Table组件
在写项目的时候,我们经常会用一些组件,比如:模态框、表格、分页等。组件的应用大大减少了项目的开发成本,同时也提高了代码的质量等。所以,封装组件成为了每个人的必须拥有的技能。本篇文章将使用原生JS封装一个Table组件。组件封装实现目标以antd中的Table组件为目标,实现以下功能:传width值控制表格宽度。columns与dataSource中的数据相对应,没有对应数据的地方显示为空...
2020-02-14 21:02:09
2468
原创 渐进地了解渐进式框架Vue
v1-minimalist原理:Object.defineProperty劫持数据变换,更新dom事件监听,改变数据 值: 复制代码const obj = {};const inputDom = document.querySelector('#input');const spanDom = document.querySelector(...
2019-11-06 20:55:54
292
原创 table 组件了解一下?
国庆去了一趟西藏,那边的风景很赞????,但是天天都会头疼????,不禁感慨,还是写文章好啊✍,So,今天要和大家分享的是 table 组件的实现,是从 0 到 1 的实现哦,这个组件对于我们来说应该是挺复杂的一个了,看过那么多个初级组件,是时候装个叉了????。知识回顾表格这东西我们肯定都接触过,尤其是在开发后台管理系统的时候,不过大部分都是直接用 UI 框架写的,久了都不知道原来是怎么写的了,所以在此我们先...
2019-11-06 20:54:26
1041
原创 吃人的那些 Java 名词:对象、引用、堆、栈
作为一个有着 8 年 Java 编程经验的 IT 老兵,说起来很惭愧,我被 Java 当中的四五个名词一直困扰着:对象、引用、堆、栈、堆栈(栈可同堆栈,因此是四个名词,也是五个名词)。每次我看到这几个名词,都隐隐约约觉得自己在被一只无形的大口慢慢地吞噬,只剩下满地的衣服碎屑(为什么不是骨头,因为骨头也好吃)。记得中学的课本上,有一篇名为《狂人日记》课文;那时候根本理解不了鲁迅写这篇文章要表达的中...
2019-11-06 20:52:56
130
原创 现代 JavaScript 教程 —— 条件运算符:if 和 '?'
条件运算符:if 和 ‘?’有时我们需要根据不同条件执行不同的操作。我们可以使用 if 语句和条件运算符 ?(也称为“问号”运算符)来实现。“if” 语句if(…) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。例如:let year = prompt(‘In which year was ECMAScript-2015 specification pub...
2019-11-06 20:51:15
784
原创 【前端词典】arr.filter(parseInt) 考查点为何
其实这类题的目的很清楚,即考察:数组方法的基础知识数值转换方法的基础知识也就是考察 基础知识的扎实程度,换句话说这是一道基础题。map()、filter()、reduce() 等数组方法说明一下:map()、filter() 是 ES5 为数组定义的迭代方法, reduce() 是 ES5 为数组定义的归并方法。这些方法并不是 ES6 新增的语法(之前在一场面试中,面试官很肯定的说这是 ...
2019-11-05 19:30:34
218
原创 SpringBoot是如何启动的?这篇文章告诉你答案!
本文是通过查看SpringBoot源码整理出来的SpringBoot大致启动流程,整体大方向是以简单为出发点,不说太多复杂的东西,内部实现细节本文不深扣因为每个人的思路、理解都不一样,我个人看的理解跟大家看的肯定不一样,到时候表达的出来的云里雾里也没啥用。首先我将SpringBoot的启动流程整理成以下阶段:SpringApplicaiton初始化审查ApplicationContext类型...
2019-11-05 19:28:40
620
原创 深入理解 JavaScript 回调函数
JavaScript回调函数是成为一名成功的 JavaScript 开发人员必须要了解的一个重要概念。但是我相信,在阅读本文之后,你将能够克服以前使用回调方法遇到的所有障碍。在开始之前,首先要确保我们对函数的理解是扎实的。快速回顾:JavaScript 函数什么是函数?函数是在其中有一组代码的逻辑构件,用来执行特定任务。实际上为了易于调试和维护,函数允许以更有组织的方式去编写代码。函数还允...
2019-11-05 19:27:27
666
原创 Java集合框架分析(五)LinkedHashMap分析
LinkedHashMap简介public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>复制代码继承自 HashMap,一个有序的 Map 接口实现,这里的有序指的是元素可以按插入顺序或访问顺序排列;与 HashMap 相比,因为 LinkedHashMap 是继承自 Ha...
2019-11-05 19:26:18
211
原创 赶快看看Java11,不然你就out了!
前言赶快看看Java11,不然你就out了!这个是个人博客原文的链接。Java更新的太快了,都学不过来了,最近了解一些Java8以后的一些特性,写下来希望对大家有帮助。为什么选择Java11容器环境支持,GC等领域的增强。进行了瘦身,更轻量级,安装包体积小。JDK11 是一个长期支持版。特性介绍由于直接从Java8跨越到Java11,所以特性介绍就把Java9-Java11的部分特...
2019-11-05 19:25:02
334
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人