使用 Java 7 的 WatchService 监控目录

在 Java 7 新增了 WatchService,它可以用来监控指定目录下的文件改动

Read more   2015/10/15 posted in  Java

Spring Boot 的配置加载顺序

Read more   2015/9/26 posted in  Spring Boot

RegExp 正则表达式

元字符

  • '.' 匹配除换行符以外的任意字符
  • '\w' 匹配字母、数字、下划线、汉字
  • '\W' 匹配任意不是字母,数字,下划线,汉字的字符
  • '\s' 匹配任意的空白符,包括空格、制表符(Tab)、换行符
  • '\S' 匹配任意不是空白符的字符
  • '\d' 匹配一个数字
  • '\D' 匹配任意非数字的字符
  • '\b' 匹配单词的开始或结束
  • '\B' 匹配不是单词开头或结束的位置
  • [abcde] 匹配 'abcde' 中任意一个字符
  • [aeiou] 匹配除 ’aeiou‘ 以外的任意字符
  • '' 匹配行首
  • '$' 匹配行尾
  • '\A' 匹配字符串开头
  • '\z' 匹配字符串结尾
  • '\Z' 匹配字符串结尾,如果字符串已 '\n' 结尾,不匹配最后的 '\n'
Read more   2015/9/18 posted in  Others

Ruby 中 Enumerable 的一些方法

判断列表

all? any? none? one?如果有代码块,则以代码块的返回值判断;如果没有代码块,则用自身元素判断。

all? The method returns true if the block never returns false or nil

any? The method returns true if the block ever returns a value other than false or nil

none? The method returns true if the block never returns true for all elements

one? The method returns true if the block returns true exactly once

[1, 2, 3, 4].all? { |x| x<3 }   # false
[1, 2, 3, 4].any? { |x| x<3 }   # true
[1, 2, 3, 4].none? { |x| x<1 }  # true
[1, 2, 3, 4].one? { |x| x<1 }  # false

include?member? 是否包含某个元素

Read more   2015/1/10 posted in  Ruby

使用 EventMachine 实现简单的服务端

一个简单的 HTTP Server 例子

require 'eventmachine'
require 'em-http-server'

class HTTPHandler < EM::HttpServer::Server
  # 请求从这里开始执行
  def process_http_request
    @http # 包含所有 http headers 的 hash
    @http_content # http body

    # 构造 http response
    response = EventMachine::DelegatedHttpResponse.new(self)
    response.status = 200
    response.content = 'hello, world!'
    response.send_response
  end

  # 请求发生异常时的回调方法
  def http_request_errback e
    puts "#{e.backtrace.shift}: #{e.message} (#{e.class})"
    puts e.backtrace.map{|line| "\tfrom #{line}"}
  end
end

EM.run do
  # hit Control + C to stop
  Signal.trap("INT")  { EventMachine.stop }
  Signal.trap("TERM") { EventMachine.stop }

  EM.start_server 'localhost', 10000, HTTPHandler
end
Read more   2014/12/12 posted in  Ruby