摘要: Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 + 使用 Express 可以快速地搭建一个完整功能的网站。 + Express 框架核心特性: + 可以设置中间件来响应 HTTP 请求。 + 定义了 阅读全文
posted @ 2019-02-15 10:48 燕归来兮 阅读(539) 评论(0) 推荐(0)
摘要: 最近因业务需要,需要搭建一个Oracle数据库,当然Oracle数据库支持Linux,但是在上面搭建很是复杂,所以我想起了Docker ,果然在上面发现了一个OracleDB的镜像,所以下载之,运行,登录什么的都正常,但是这个镜像不支持中文字符集,所以为了更好的使用,下面使用Dockerfile文件 阅读全文
posted @ 2019-02-15 10:47 燕归来兮 阅读(1353) 评论(0) 推荐(0)
摘要: ELK (ElasticSearch、LogStash以及Kibana)三者组合是一个非常强大的工具,这里我们来实现监控日志文件并且收到日志到ElasticSearch搜索引擎,利用Kibana可视化工具实现ElasticSearch查询. <! more ElasticSearch 官方描述 El 阅读全文
posted @ 2019-02-15 10:46 燕归来兮 阅读(789) 评论(0) 推荐(0)
摘要: 深度优先 搜索(DFS, Depth First Search) 从一个顶点v出发,首先将v标记为已遍历的顶点,然后选择一个邻接于v的尚未遍历的顶点u,如果u不存在,本次搜素终止。如果u存在,那么从u又开始一次DFS。如此循环直到不存在这样的顶点。 算法核心代码如下: java void dfs(i 阅读全文
posted @ 2019-02-15 10:46 燕归来兮 阅读(1272) 评论(0) 推荐(0)
摘要: 可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 <! more 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Dockerfile命令,可查看以下博文: "Dockerfile命令详解(超全版本)" 阅读全文
posted @ 2019-02-15 10:45 燕归来兮 阅读(887) 评论(0) 推荐(0)
摘要: 各位Javaer们,大家都在用SpringMVC吧?当我们不亦乐乎的用着SpringMVC框架的时候,Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFlux。web? 不是已经有SpringMVC这么好用的东西了么,为啥又冒出个WebFlux? 这玩意 阅读全文
posted @ 2019-02-15 10:45 燕归来兮 阅读(2892) 评论(0) 推荐(0)
摘要: 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于 ,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。我们的 阅读全文
posted @ 2019-02-15 10:44 燕归来兮 阅读(259) 评论(0) 推荐(0)
摘要: 最近在学习设计模式,比较巧合的是,昨天在看其他人博客的是,发现了一道比较有意思的面试题目,想用比较好的方法来设计他,一路思考,今天抽出午休时间完成了他,基于之前学习的 "设计模式系列之装饰模式(DECORATOR PATTERN)" "),我发现这个题目非常适合使用装饰器模式,顺便标注以前原博主的文 阅读全文
posted @ 2019-02-15 10:44 燕归来兮 阅读(1758) 评论(0) 推荐(1)
摘要: + 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 + 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。 + 何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通 阅读全文
posted @ 2019-02-15 10:43 燕归来兮 阅读(259) 评论(0) 推荐(1)
摘要: SpringBoot 可以支持多数据源,这是一个非常值得学习的功能,但是从现在主流的微服务的架构模式中,每个应用都具有唯一且准确的功能,多数据源的需求很难用到,考虑到实际情况远远比理论复杂的多,这里还是深入学习一个Mybatis的多数据源的配置,代码偏向于实战,提供Git地址,以供下载测试. "ht 阅读全文
posted @ 2019-02-15 10:43 燕归来兮 阅读(7606) 评论(1) 推荐(1)
摘要: + 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 + 主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。 + 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。 + 如何解决:将这些算法封装成一个一个的类,任意地替换。 + 阅读全文
posted @ 2019-02-15 10:38 燕归来兮 阅读(202) 评论(0) 推荐(0)
摘要: Redis是什么这里不用再说了吧?下面是官方的解释 Redis is an open source (BSD licensed), in memory data structure store, used as a database, cache and message broker. It sup 阅读全文
posted @ 2019-02-15 10:36 燕归来兮 阅读(231) 评论(0) 推荐(0)
摘要: 在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. <! more 创建客户端 接着第五个笔记说,第五个笔记实现了简单的静态资源服务起,那么我们利用这个静态资源服务起为我们提供页 阅读全文
posted @ 2019-02-15 10:36 燕归来兮 阅读(648) 评论(0) 推荐(0)
摘要: 看了好久的SpringBoot结合MyBatista实现读写,但是一直没有勇气实现他,今天终于接触到了读写分离的东西,读写分离就是讲读操作执行在Slave数据库(从数据库),写操作在Master数据库执行(主数据库),将每次在Master执行的记录同步到各个Slave上去,实现数据库主从同步的操作, 阅读全文
posted @ 2019-02-15 10:35 燕归来兮 阅读(736) 评论(0) 推荐(0)
摘要: 👆关注微信公众号,获取更多编程内容 昨天在继续完善基于Netty构建的聊天室系统的过程中,发现了一个有意思的知识点,特此拿来做一个简单的静态网页服务器,好好的玩一玩Netty。 但是不管怎么说利用netty实现各种功能的流程都是类似的 + 配置ServerHandle + (可选)实现自定义的编码 阅读全文
posted @ 2019-02-15 10:35 燕归来兮 阅读(2820) 评论(0) 推荐(0)
摘要: 此处纪录一些个人常用的Shell命令,留作复用 <! more Linux 必备软件 + Tmux 终端复用神器 + zsh 无比强大Shell运行环境 + oh my zsh 搭配zsh食用 + uGet Linux下载工具 + Docker Compose 镜像编排工具 Linux 字体 + M 阅读全文
posted @ 2019-02-15 10:34 燕归来兮 阅读(378) 评论(0) 推荐(0)
摘要: 前面三个章节,我们使用了Netty实现了DISCARD丢弃服务和回复以及自定义编码解码,这篇博客,我们要用Netty实现简单的聊天室功能。 Ps: 突然想起来大学里面有个课程实训,给予UDP还是TCP实现的聊天程序,简单的分析一下,那个实现和基于Netty的实现是不一样的,基于UDP或者TCP做的聊 阅读全文
posted @ 2019-02-15 10:34 燕归来兮 阅读(462) 评论(0) 推荐(0)
摘要: Docker compose是一个基于Docker的编排工具,所谓编排个人理解就是将不同的镜像通过配置,组成一个新的运行环境,官方定义是: 很简单的一句话,下面我们看下怎么部署一个JavaWeb项目.主要有几大步骤: + 安装Dcoker 和Docker compose + 编译项目生成JAR包 + 阅读全文
posted @ 2019-02-15 10:33 燕归来兮 阅读(597) 评论(0) 推荐(0)
摘要: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类 阅读全文
posted @ 2019-02-15 10:32 燕归来兮 阅读(130) 评论(0) 推荐(0)
摘要: 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 我们将创建一个 Person 对象、Cr 阅读全文
posted @ 2019-02-15 10:31 燕归来兮 阅读(350) 评论(0) 推荐(0)
摘要: 在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求。 <! more 前置工作 开发环境 + JDK8 + Netty版本:5.0.0.Alpha2 + 集成环境:IDEA + 阅读全文
posted @ 2019-02-15 10:30 燕归来兮 阅读(597) 评论(0) 推荐(0)
摘要: 编写一个网络应用程序需要实现某种编解码器,编解码器的作用就是讲原始字节数据与自定义的消息对象进行互转。网络中都是以字节码的数据形式来传输数据的,服务器编码数据后发送到客户端,客户端需要对数据进行解码,因为编解码器由两部分组成: + Decoder(解码器) + Encoder(编码器) 解码器负责处 阅读全文
posted @ 2019-02-15 10:30 燕归来兮 阅读(1340) 评论(0) 推荐(0)
摘要: 端午闲着无聊,自己撸了一个简单的框架,可以实现在使用SendClient发送消息,在Spring容器中,符合该消息机制的接收器将能够被执行,目前Saka处于 0.0.1 版本【 "Saka GIthub地址(欢迎Star ★)" ")】还有很多问题,但是基本可以实现以下的功能. + 自动扫描,无需配 阅读全文
posted @ 2019-02-15 10:29 燕归来兮 阅读(605) 评论(0) 推荐(0)
摘要: 👆关注微信公众号,获取更多编程内容 跨域资源共享(CORS,请求协议,请求地址,请求端口三者必须相同才是同一服务器,否则都要进行跨域操作)标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 G 阅读全文
posted @ 2019-02-15 10:26 燕归来兮 阅读(2014) 评论(0) 推荐(0)
摘要: 👆关注微信公众号,获取更多编程内容 "原文链接 https://www.zhoutao123.com/page/book/architect/category/yb8cpz" 远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台 阅读全文
posted @ 2019-02-15 10:25 燕归来兮 阅读(3884) 评论(0) 推荐(0)
摘要: 栈(英语:stack)又称为栈或堆叠,是计算机科学中一种特殊的串列形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。另外栈也可以用一维数组或链表的形式来完成。堆栈的另外一个相对的操作方式称为队 阅读全文
posted @ 2019-02-15 10:23 燕归来兮 阅读(1111) 评论(0) 推荐(0)
摘要: 第一次看到用lambda表达式写出来的Java代码时,我对这种神秘的语法感到非常不理解,认为这样的Java搞得不可读。没有专门的去学习和认识,今天花了几个小时写了示例的练习后,我开心的看到了更清晰的Java代码。这有点像学习泛型,第一次见的时候我很讨厌它。所以现在的想法就是,不要畏惧lambda表达 阅读全文
posted @ 2019-02-15 10:23 燕归来兮 阅读(277) 评论(0) 推荐(0)
摘要: 官方那个给出的介绍是:Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。然后我们简单理解一下,这玩意就是个程序,干什么的?netty是封装java socket noi的。 类似的功能是 阅读全文
posted @ 2019-02-15 10:21 燕归来兮 阅读(800) 评论(0) 推荐(0)
摘要: 短信服务(Short Message Service)是网易网易云通信为用户提供的一种通信服务的能力,目前支持验证码类短信、通知类短信、运营类短信、语音类短信、国际短信等事务性短信。网易网易云通信短信功能具体有全网覆盖、3 5 秒可达、超高到达率、7 24 小时服务监控等优势。按量付费、阶梯定价,发 阅读全文
posted @ 2019-02-15 10:21 燕归来兮 阅读(429) 评论(0) 推荐(0)
摘要: SpringBoot启用定时任务,其内部集成了成熟的框架,因此我们可以很简单的使用它。 <! more 开启定时任务 配置定时任务组件 使用注解 可以定义一个组件,组件中,我们可以按照以下代码开始定时任务。 Cron 表达式可以使用:http://cron.qqe2.com/ 来生成,非常的方便 阅读全文
posted @ 2019-02-15 10:20 燕归来兮 阅读(407) 评论(0) 推荐(0)
摘要: 在使用mybatis的过程中,我们会发现需要自己写很多的mapper和mapper.xml配置文件,很多时候会写到相当多的重复代码,特别是普通的增删改查,这样不仅会影响我们的开发效率,也会使得代码变的冗余且可读性较差。虽然前面使用了mybatis的自动生成插件generator,但是generato 阅读全文
posted @ 2019-02-15 10:19 燕归来兮 阅读(2431) 评论(0) 推荐(0)
摘要: 手写Api文档的几个痛点: + 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 + 接口返回结果不明确 + 不能直接在线测试接口,通常需要使用工具,比如postman + 接口文档太多,不好管理 Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的, 阅读全文
posted @ 2019-02-15 10:19 燕归来兮 阅读(881) 评论(0) 推荐(0)
摘要: 在产品的使用中我们一般都要设置一个配置环节,这个环节可以设定主机的IP地址等信息,但是这样配置的话使得我们的产品用起来效果不是很好,因此我想到了实现局域网IP扫描的功能,IP局域网扫描是指定IP网段获取IP地址信息的方法,在加上PING命令来处理实现,检查该设备是否在线。 代码很简单,主要浏览就是获 阅读全文
posted @ 2019-02-15 10:18 燕归来兮 阅读(3131) 评论(0) 推荐(0)
摘要: [toc] ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜 阅读全文
posted @ 2019-02-15 10:17 燕归来兮 阅读(2742) 评论(0) 推荐(0)
摘要: 创建定义函数的的基本语法如下 <! more 1、创建日期时间格式化函数 sql DROP FUNCTION IF EXISTS ; CREATE FUNCTION FORMAT_DATE_TIME( DATETIME) RETURNS VARCHAR(100) RETURN DATE_FORMAT 阅读全文
posted @ 2019-02-15 10:17 燕归来兮 阅读(1452) 评论(0) 推荐(0)
摘要: 在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application 阅读全文
posted @ 2019-02-15 10:17 燕归来兮 阅读(1820) 评论(0) 推荐(0)
摘要: 启动方式 运行main方法 <! more 使用mvn启动 进图项目目录,使用以下命令启动,要求配置好环境变量 编译成jar启动 编译生成Jar包的方式,首先使用mvn命令编译 编译完成之后,当出现如下提示的时候代表编译完成 然后进入 c'ltarget目录,会发现新增了jar文件,使用java命令 阅读全文
posted @ 2019-02-15 10:16 燕归来兮 阅读(183) 评论(0) 推荐(0)
摘要: 2017年年终总结 用词语形容一下我的2017,那就是幸运、经历、蜕变,这一年里我经历了大学毕业,经历了生离死别,有苦也有乐,有悲也有喜,但是总体而言,2017年使我变成了另外一个人,或许在外人看来这变化微乎及微,但是自己感受上完全是云壤之别。在去年的总结里面我写下了这样的一句话,没想到2017年确 阅读全文
posted @ 2019-02-15 10:16 燕归来兮 阅读(174) 评论(0) 推荐(0)
摘要: 安卓系统的权限管理机制从API 23 (也就是Android 6.0 又叫做 Android M,)之后发生了比较大的改变,在一些比较危险的权限上要求必须申请动态权限,即使你在AndroidMainfest.xml文件中申请也没有任何用,或者你可以将编译的目标版本设定这API 22,这样就可以了。但 阅读全文
posted @ 2019-02-15 10:15 燕归来兮 阅读(2141) 评论(0) 推荐(0)
摘要: 随着卡片式设计在Android系统的上越来越流行,比如现在早已经烂大街的沉浸式状态栏,几乎所有的主流的APP都支持沉浸式状态栏,如QQ、UC浏览器等等。所以觉得有必要学习一下,找了点资料,总结了一下,未测试低版本的效果,如果有测试的话欢迎反馈一下。只是简单的记录这一步骤,更深层次的代码请访问 htt 阅读全文
posted @ 2019-02-15 10:14 燕归来兮 阅读(375) 评论(0) 推荐(0)
摘要: 在此之前,一直在想九宫格的实现方法,经过一个上午的初步研究终于完成了一个简单的N N的宫格解锁组件,代码略显粗糙,仅仅做到简单的实现,界面等后期在做优化,纯粹是学习的目的,在算法上有点缺陷,如果有错误或者更好的方法,欢迎提出,相互学习。先来看一下预览图 <! more 九宫格效果展示 N=3 手指抬 阅读全文
posted @ 2019-02-15 10:13 燕归来兮 阅读(611) 评论(0) 推荐(0)
摘要: OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类,同时提供了Python、Ruby、MATLAB等语言的接口,实现了和计算机视觉方面的很多通用算法 阅读全文
posted @ 2019-02-15 10:12 燕归来兮 阅读(1298) 评论(0) 推荐(0)
摘要: 一提到广播我们第一感觉就会联想到小时候村里面的广播,安卓的广播机制也是类似于大喇叭。有发送广播的地方,也有接收广播的地方。但是具体怎么操作呢,我们来一步一步的看下去~ <! more 安卓的广播种类 + 系统发送的广播:具体有哪些可以看下这篇Blog http://blog.sina.com.cn/ 阅读全文
posted @ 2019-02-15 10:11 燕归来兮 阅读(270) 评论(0) 推荐(0)
摘要: 早晨醒来,在被窝里面刷着简书,看到一篇文章叫《深漂一年,一个资深程序员的2016年终告白》,写的很好,很有感触。在2016年的农历的最后一天,总是有很多感触要写下来。所以下午扫墓之后,我也按照剧情需要的总结一下自己的2016年,记录下这一年来自己的思想变化和后期的打算以及2017年的简单规划,毕竟, 阅读全文
posted @ 2019-02-15 10:10 燕归来兮 阅读(275) 评论(0) 推荐(0)
摘要: Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表、动画等。 没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互。有了Canvas,我们就再也不需要Flash了,直接使用JavaScript完成绘 阅读全文
posted @ 2019-02-15 10:09 燕归来兮 阅读(671) 评论(0) 推荐(1)