转载 相关博文

ClassLoader和双亲委派机制

前言:网上关于类加载器讲解的文章特别多,在学习的时候让我受益匪浅,某段时间觉得自己懂了。但是在昨天遇到一个问题,并去看Spark关于用户类加载的时候,它实现的类加载器让我看的很疑惑,半天没有转过来。我才发现自己原来根本不懂类加载器的原理,对双亲委派机制只是停留在字面上,知道会先找父但是不知道怎么去找的,所以今天把JDK关于ClassLoader的代码撸了一遍,把以前一些模糊的地方捋明白了,内心稍安。同时这也是我昨天遇到的问题的前篇,扫清后面问题的障碍,后续会把关于Spark的问题捋出来,再来分享 ## 三种...

使用 Docker 搭建 Java Web 运行环境

原料 前提条件 首先,您要准备一个 CentOS 的操作系统,虚拟机也行。总之,可以通过 Linux 客户端工具访问到 CentOS 操作系统就行。 需要说明的是,Ubuntu 或其它 Linux 操作系统也能玩 Docker,只不过本文选择了以 CentOS 为例,仅此而已。 CentOS 具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: uname -r 如果执行以上命令后,输出的内核版本号低于 3.8,请参考下面的方法来来升级您的 Linu...

ECMAScript6词法

ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准,它于2015 年 6 月正式发布。ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。ECMAScript实现还有Jscript和ActionScript。...

SpringBoot和Vue的工程化实践之分分合合

背景 由于现在普遍的前后端分离开发 【前端vuejs 后端springboot】那么存在如下工程化问题: 目前SpringBoot采用fatjar的形式发布 Vue通过nodejs运行 发布时Vue打包出来的结果没有后端支持将无法访问 存在如下的方案 开发时将前后端项目联合开发,前端代码存在后端的子目录下【不建议】 开发时vue使用vue-cli的纯粹前端方案 部署时将生成的代码copy到后端项目中   方案 我们建议采用方案2,但是部署时不建议copy【不利于工程化的实践】 我们采用如下方式进行工程化的实...

码云开始征集企业Logo和客户优秀案例啦!

码云企业版经过一年多的飞速发展,在业内取得了非常不错的成绩。码云的进步离不开众多合作伙伴和客户的大力支持,为了能够使码云的众多伙伴有更多机会和平台展现企业取得的优异成绩,并能够为众多码云企业版客户提供可参照依据,我们全面启动征集成功企业 Logo 和客户案例活动。 **展示一:展示企业 Logo** **征集时间:** 2017年12月8日之前。 **征集内容:** 本次征集最终选取20个企业 Logo 长期展示在码云企业版首页,作为品牌推广。 **征集要求:** 1、需提供 AI 格式的 Logo 文件。...

MySql Binlog事件数据篇

前言 前两篇文章MySql Binlog初识和MySql Binlog事件介绍篇分别从Binlog入门和Binlog事件如何产生的两个角度来介绍Binlog,本文将从Binlog事件的数据来更深入的了解Binlog。 Binlog事件数据 1.QUERY_EVENT 执行更新语句时会生成此事件,包括:create,insert,update,delete; Fixed data part,总长度13字节: 4字节:执行sql的线程id; 4字节:执行sql的时间; 1字节:数据库名称的长度; 2字节:执行s...

译文连载:如何利用开源软件赚钱(一)

内容概览:0、为什么要翻译这本书;1、本书原作者简介;2、本书主要内容;3、本书前言部分。这篇是个先导文,后续正文部分会陆续更新,期望能够给大家新的想法。也欢迎随时与我交流沟通,联系方式在文章末尾。...

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object...

持续集成实践二之Jenkins与Sonar Qube集成

## 前言   作为一名码农,曾几何时,无数次挑灯夜战,只为第二天为客户稳定演示系统,奈何到关键时候,会发现代码中会有很多坑,这个时候,往往是最令人崩溃的。如何能做到提前发现程序潜在的问题,找到隐藏的八阿哥,保证系统的稳定,一直是困扰着我们的问题。记得以前为了解决这个问题,部门专门组织每周一次代码走查,虽然最后情况有所改善,但费事费力,并未得到根本上的解决。   所幸的是,有些大牛开发出了一系列代码质量检测工具,给我们这些码农带来了福音。下面就来介绍一款开源的代码质量管理系统——SonarQube。相信通过...

Spring Boot 2.0 - WebFlux With MongoDB

原文链接 [http://www.spring4all.com/article/239](http://www.spring4all.com/article/239) ### 1、理论知识 [Spring Boot 2.0 - WebFlux framework](http://www.jianshu.com/p/f4ff6d74ad4a) ### 2、基于 Spring Boot 2.0 的实践 #### ① 在 docker 上运行 MongoDB 首先,获取 MongoDB 的镜像: ``` $ do...

换个角度剖析iptables防火墙

    这篇文章会尽量以通俗易懂的方式描述iptables的相关概念,请耐心的读完它。   防火墙相关概念   此处先描述一些相关概念。 从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。 主机防火墙:针对于单个主机进行防护。 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。 网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。   从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。 硬件防火墙:在硬件级别实现部分防火墙...

SpringBoot之内容协商器

背景 使用了restful的小伙伴对于导出这些需求本能就是拒绝的~破坏了restful的url的一致性【严格矫正 不是http json就是restful 很多小伙伴都会吧暴露出一个json就直接称为restful 】 正如上文的代码生成器 我们会批量生成一堆代码 其中绝大部分都是RestController public abstract class AbstractRestController<V extends Vo, S extends So, PK extends Serializable&...

SpringBoot DevTool实现热部署

背景 由于现在越来越多在使用IDEA做SpringBoot开发,和原先Tomcat不同的是 无法用reload class将对应的修改的class放入classpath 但是SpringBoot自身提供了SpringBoot-DevTool来做热部署  步骤 加入指定的maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-...

LODOP!LODOP!!LODOP!!!(喊三遍啊喊三遍~)

公司买了一套LODOP的打印,没办法,那就用呗,开始还没理会,后面因为特殊原因一接触,才发现一入LODOP深似海,从此掉入“钱”眼里。(钱么,数的都是数字,咱也是数的数字,看下面的截图,你就知道此处应该要省略几万字~~) 上图第一张,出来的第一版打印的JS代码(部分): 完了,写完一个以后,眼睛看哪里晃来晃去的都是数字~  ***de,全是各种 TOP LEFT  WIDTH HEIGHT  必须的想想办法,吃了个中饭好好理了理思绪,想了想我要达到的目的: 摆脱数字,这么数来数去的计算位置,不行,效率太低下...

入门到放弃node系列之网络模块(一)

### 前言 本文首发公众号【一名打字员】 上一次相信大家都基本了解node的用法了,有做功课的童鞋肯定回去温习了一下js的语法。这些年来js发展很快,出了很多类似许多vue、react、node等等众所周知的玩意儿,对应的社区配套也越来越完善。好的,接下来我们补充一下node的内置网络模块,顺带复习一下网络编程的相关知识,毕竟“技多不压身”。 ### API概览 其实nodejs一开始就是帮助编写高性能的web服务器,在这里简单介绍一下相关的API,好让大家知道什么情况下该使用哪个API,具体使用的方法还...

HTTP 重定向: 你可能不知道的故事 - 上

在 Spring 里面我们要重定向的话一般都会这样做: ```java @Controller final class RedirectTestController { @RequestMapping(value = "/foo") String foo() { return "foo"; } @RequestMapping(value = "/bar") String bar() { return "redirect:/foo"; } } ``` 应用遇到发送到 `/bar/` 的请求被重定向到 `/fo...

【YFMemoryLeakDetector】人人都能理解的 iOS 内存泄露检测工具类

时过境迁,今天在网上搜了下 “iOS 内存泄露检测”,各种讨论技术文章,有点头大。我忍不住看了下自己当时的代码,突然感觉自己的思路好特别,好有创意。我真的就是在“创建”时把数据记录到一个字典里,在“释放”时,从字典里移出对象;所谓的检测,其实就是打印那个字典,仍然在字典中的很有可能就是泄露喽。...

04、Vue.js---自定义过滤器

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。...

Iptables详解+实例

Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 netfilter/iptables过滤防火墙系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 ...

03、Vue.js---自定义指令

除了核心功能默认内置的指令,Vue 也允许注册自定义指令。...

Java HashMap的工作原理

面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。 我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country对象作为key,它的首都的名字(String类型)作为value。下面的例子有助于我们理解key-value对在Has...

【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便;另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关命令的执行。 今天我试着直接在树莓派上搭建一个 sinopia 服务。最终实现的效果较为完整,基本满足需要了。包含用户权限管理,外网使用自定义域名访问,sinopia服务开机自启等特性。...

水平分库如何做到平滑扩展

分库分表扩容是一件头疼的问题,否有方案,既支持快速扩展,又不降低可用性?...

聊天机器人:应用程序纪元新黎明

原文作者:Sophia Brooke 原文链接:[《Chatbots: The Dawn of a New Era in App Development》 ](https://chatbotsmagazine.com/chatbots-the-dawn-of-a-new-era-in-app-development-5fa7a398269c) 编译:一熊翻译组 Mason ![![输入图片说明](https://static.oschina.net/uploads/img/201711/21175008_f...

Maven-- 自定义Archetype

# Maven-- 自定义Archetype ## 学习思维导图 ![image](http://wx4.sinaimg.cn/mw690/006qiLqogy1flppgqlbetj30j30cv74u.jpg) ## 自定义Archetype ### **背景** > Archetype是什么?为什么要自定义Archetype?又或者它能解决什么问题。 Archetype翻译为原型,也可被称作模板。简单来说,可以通过模板创建一个我们想要的初始化工程,从而可以在这个工程下快速或直接开始我们的业务编程...

Java并发学习之线程状态及Thread常用方法详解

在前面线程创建的一篇博文中,明确说明只有在调用 `Thread#start()`方法之后,线程才会启动;那线程创建完和这个启动又是什么关系呢?启动是否又是运行呢?本节则主要集中在线程的各个状态的解释以及状态变迁的原因...

有的放矢,你应该在性能测试报告中使用的 10 个微观指标

在这篇文章中,你将会了解到为什么常见的主要测试指标是不完美的,以及十个新的测量指标 —— 它们可能会改进你未来的性能测试报告。...

Celery系列二:Celery高级属性

## 一、指定队列 Celery非常容易设置和运行,通常它会使用默认的名为celery的队列(可以通过CELERY_DEFAULT_QUEUE修改)用来存放任务。可以使用优先级不同来确保高优先级的任务不需要等待就得到响应。 基于Celery系列一的project代码,创建一个projectq目录,并修改celeryconfig.py,修改后如下: ``` # -*- coding:utf-8 -*- BROKER_URL = 'amqp://guest:guest@localhost:5672//' # 使...

SpringBoot 打包之可运行jar

背景 一个可运行的工具始终比XXX配置更加方便 每次一堆tomcat版本指定,对应jar替换 各种打包 替换properties 参考 maven profile VS spring profile tomcat什么的下载太麻烦了 SpringBoot 的execute jar可以解决上述一堆问题 当然我们仍然可以将其导出成war 后放入 tomcat中运行 实现 在需要打包的模块加入如下plugin <build> <plugins> <plugin&...

后端自动化版本管理,再也不用改URL了!

每次升级接口版本时,后端、前端、客户端都是痛苦的: 后端:要兼容旧版客户端,以前的接口不能动啊,又得写新接口、新文档了,唉! 前端:还好,就是版本号到处都是,改起来比较烦。 Android:快点啊产品催需求呢,服务器别停太久。对了你知道编译一次要多久么?泪奔。。。 前端:对对,别停太久。还有文档别再写错了啊,上次你复制粘贴的 v3 害我接口调了半天,原来是 v4 。。。 iOS:我也被坑了。。。 后端:呃,我尽快,写文档会注意的哈。 后端:另外旧域名 http://api.aaa.com/v4 也会一直开着...

Angular4自制一个市县二级联动组件

最近遇到了不少问题,真的是命运多舛。Angular真是让人又爱又恨的框架,恨的是资料太少,遇到问题无从下手。爱的是许多其他框架难以做到的功能,angular却可以轻松做到。 话不多说,最近遇到了一个旧项目改造的问题。拿到前同事做的页面效果: 第一眼就看到了这三个下拉框,按捺不住好奇心的我点了点。原来,第一个下拉框可以选择市属和省属,如果选择市属,那么后面就会出现市、县级两个下拉框,如果是省属,那就隐藏了,这个挺容易的。然后就是要选择市之后,区下拉框要有对应区县选项。emmmm,很典型的二级联动,不过既然分析...

【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制

最近接触了些内网穿透的知识,我突然想到,是不是借助内网穿透,也可以把我的阿里云主机给暴露出来?毕竟内网穿透,使用的是 Linux 一些基础知识,算不上很极客的技术,应该是具有通用性的。经验证,竟然真的可行! 特记录下来,献给有同样遭遇的有缘人。...

深入理解Java中的final关键字

Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。 final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变...

Vue.js---表单标签中的单选按钮、复选按钮和下拉列表的取值问题

表单标签取值问题中,单选按钮、复选按钮和下拉列表都比较特殊。这里总结一下vue.js中关于单选按钮、复选按钮和下拉列表不同情况的取值特殊性问题。...

Celery系列一:初识Celery

## 一、 基本介绍 Celery是一个专注于实时处理和任务调度的分布式任务队列。所谓任务就是消息,消息中的有效载荷中包含要执行任务需要的全部数据。 使用Celery常见场景: 1. Web应用。当用户触发的一个操作需要较长时间才能执行完成时,可以把它作为任务交给Celery去异步执行,执行完再返回给用户。这段时间用户不需要等待,提高了网站的整体吞吐量和响应时间。 2. 定时任务。生产环境经常会跑一些定时任务。假如有上千台的服务器、上千种任务,定时任务的管理会很困难,Celery可以帮助我们快速在不同的机器...

nginx-http-concat资源文件合并模块

网页中引入多个CSS和JS的时候,浏览器会发出很多(css个数+js个数)次网络请求,甚至有的网页中有数十个以上的CSS或JS文件,用户体验特别不好,正好可以利用nginx-http-concat nginx模块简单的把这个问题解决好。 安装模块...

人工智能,机器学习和深度学习之间的差异是什么?

如果你在科技领域,你经常会听到人工智能,机器学习,甚至是深度学习。怎样才可以在正确的时间正确的使用这些词?他们都是一样的意思吗?然而更多时候,人们总是混淆的使用它们。 人工智能,机器学习和深度学习都是属于一个领域的一个子集。但是人工智能是机器学习的首要范畴。机器学习是深度学习的首要范畴。 深度学习是机器学习的一个子集,机器学习是人工智能的一个子集 这个领域的兴起应该归功于深度学习。人工智能和机器学习这个领域近年来一直在解决一系列有趣的问题,比如从自动化的杂货店购买到自动驾驶汽车。 人工智能: 人工智能的定义...