站内搜索

本次搜索找到结果 32 条
使用Netty进行Socket编程Netty是业界最流行的Java-nio框架之一,它的健壮性,功能,性能,扩展性等在同类框架中都是首屈一指的存在。Java的nio和aio对于开发者来说显得并不友好。如果没有任何java-nio基础的读者,建议先看看我的上一篇介绍Java-I/O模型的文章。建议初学者跟着代码写一遍,写一遍加深印象能更好的理解java-nio的实现步骤和原理。HelloWorld ...
Java的I/O模型java在JDK中提供了三种I/O模型,一类是最原始也是我们用得最多最熟悉的阻塞I/O模型BIO,使用InputStream和OutputStream进行读写操作。第二种是jdk1.4之后的NIO,相比起BIO在性能上无疑是一个巨大的提升,NIO的应用场所主要是在网络上,因为相比起CPU,内存,硬盘的处理速度,网络差了太多太多,所以在开发网络应用时,使用BIO模型,处理器大多数...
WebSocket 简介websocket的产生我们都知道HTTP协议是一种请求-响应模型,表现在Request和Response两个对象上,并且只能由客服端产生Request服务器被动的回复Response。但是在及时通讯的业务场景,这种通讯模型并不适用,因为服务端不能直接给客服端推送消息,所有只能由客服端不断的循环发送请求询问服务器数据是否有需要推送的消息,这种机制称为轮询。轮询机制因为要不断...
Java 中的AOP代理aop 面向切面编程在传统 OOP 编程里以对象为核心,整个软件系统由系列相互依赖的对象所组成,而这些对象将被抽象成一个一个的类,并允许使用类继承来管理类与类之间一般到特殊的关系。随着软件规模的增大,应用的逐渐升级,慢慢出现了一些 OOP 很难解决的问题。比如我们在写CUDR业务时,同一操作也许会设计到对多个记录或者表的变更操作,此时我们需要对其经行事务控制,这样才能保证一...
自定义模版字符串解析有时候需要拼接一些字符串,在Java有字符串模版,但是这个模版的可读性很差,js在ES6中新增了字符模版,但是在面对模版字符串的时候依旧无法处理。所以写了个工具在两端可以解析同一套模版。String name = "张三";int age = 18;String temp = "%s您好!你的年龄%s"//Java字符串模版// 改成模版字符串时可读性比较好var temp =...
记一个PostConstruct和Spring的坑场景在一些业务中抽象了一个业务类型,所有子类在启动程序时注册到一个context中,然后通过每种业务的code在context来获取具体的子类实现。抽象业务父类/** * @author wpy * @date 2018/4/18 15:42 */public abstract class AbstractBusiness { @PostCo...
koa源码简析Koa代码量非常少,大致分为5个部分,application.js (koa对象)context.js (koa上下文对象) request.js (request对象)response.js (response对象)koa-compose/index.js (合并中间件)与原生node模块写法的对比首相我们对比一下使用node原生的http模块和koa构建服务的异同//原生...
Koa 框架koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。在使用上,koa把之前的req,rsp都...
SpringMVC @RequestBody 自定义参数绑定最近在写一个短信发送的平台,作为一个纯服务提供者,我想照着以前在电子支付的账务接口系统做,这样的扩展性很好也很简单。但是之前是采用的WebService做的,使用xml传输数据,然后用xsd去校验数据格式。但这个我希望做成全josn形式的,这样更加简单方便。含义RequestBody即请求体,被@RequestBody修饰的参数,即接收当...
mongdb 的查询语句官方文档表结构{ "_id" : ObjectId("5ac32a192e9d816838f3baae"), "name" : "2017年高分获奖剧情《魅影缝匠》BD中英双字幕", "url" : "http://www.dytt8.net/html/gndy/dyzz/20180328/56582.html", "date" : "2018-03...
基于事件驱动的nodejs的爬虫研究node大半个月了,怕和之前一样学完即忘掉,打算写点东西练练手,说干就干,花个半天时间撸个爬虫。本文将使用nodejs基于crawler和cheerio和构建一个简单又高效的的爬虫,本文涉及到的知识点。ES5/6 语法基础nodejs 基础crawler node爬虫工具cheerio nodejs版jQueryHTML/jQuerymongodb 数据库本文以...
nodejs child_process 模块多线程编程通常情况下,node是采用了一个单线程在执行,但是单线程在抛出异常时就会down掉,这显然不符合后端程序的要求,加之现代电脑基本是多核心处理器,为了更好的利用多核处理器,提高程序性能node也提供了进程child_process模块。在这之前我们来看看node中进程对象包含那些信息。process 对象process的属性var proces...
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。简单来说它就是一个基于nodejs http 模块简单封装的js库。Express 框架核心特性:可以设置中间件来响应 HTTP 请求。定义了路由表用于执行不同的 HTTP 请求动作。可以通过向模板传递参数来动态渲染 HTML 页面。Express 对象...
JavaScript 异步编程异步的概念  作为一个java程序猿,此处需要明确的是:异步与多线程与并行不是同一个概念,所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。 比如,有一个任务是读取文件进行处理,任务的第一段是向操作系统发出请求,要求读取文件。然后,程序执行其他任务,...
JSON 工具类JSON.parse()解析JSON字符串并返回对应的值,可以额外传入一个转换函数,用来将生成的值和其属性, 在返回之前进行某些修改。JSON.stringify()返回与指定值对应的JSON字符串,可以通过额外的参数, 控制仅包含某些属性, 或者以自定义方法来替换某些key对应的属性值。let obj = { name: "张三", age: 18, toStr...
与大多数全局对象不同,Reflect没有构造函数。你不能将其与一个new运算符一起使用,或者将Reflect对象作为一个函数来调用。Reflect的所有属性和方法都是静态的(就像Math对象)Reflect.apply()对一个函数进行调用操作,同时可以传入一个数组作为调用参数。和 Function.prototype.apply() 功能类似。let obj = { name: "张三",...
Proxy的构造方法target参数被代理的对象handler参数代理的操作的定义对象let handler = { get: function(target, name){ return name in target ? target[name] : "no"; }};let p = new Proxy({}, handler);p.a = 1;p.b = undefi...
使用Function构造器生成的Function对象是在函数创建时解析的。这比你使用函数声明或者函数表达式(function)并在你的代码中调用更为低效,因为使用后者创建的函数是跟其他代码一起解析的。所有被传递到构造函数中的参数,都将被视为将被创建的函数的参数,并且是相同的标示符名称和传递顺序属性function.arguments以数组形式获取传入函数的所有参数。arguments对象是所有(非...
认识 JavaScript 的 prototypeprototype在Java里获取对象的实例一般是通过Class来获取,在ES6以前js中是没有class的概念,获取实例是通过构造方法来获取。function ClassMate(name,age) { this.name = name; this.age = age; this.say = function (){ ...
Object 的属性Object.prototype可以为所有 Object 类型的对象添加属性。Object.prototype Object的原型Object.prototype.constructor特定的函数,用于创建一个对象的原型。Function.prototype.constructor等于本身。Object.prototype.hasOwnProperty()返回一个布尔值 ,表示...