摘要: Shiro是强大、精简的Java安全框架。在认证、授权、加密和会话管理等方面提供直观而又全面的解决方案。Shiro的一些特性:支持基于各种数据源的认证与授权,可以进行角色或者更细粒度的授权,而且Exception的层次非常丰富。支持缓存以提高应用性能。环境无关的session访问,session管理... 阅读全文
posted @ 2014-11-25 20:29 Jinkora 阅读(738) 评论(0) 推荐(1)
摘要: 1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00... 阅读全文
posted @ 2014-11-24 20:15 Jinkora 阅读(151) 评论(1) 推荐(0)
摘要: Vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。这里收录了130+程序员必备的 vim 命令,帮助你提高开发效率。欢迎在评论中补充你常用到,但这里没有列出来的命令。Ba... 阅读全文
posted @ 2014-11-24 19:58 Jinkora 阅读(253) 评论(0) 推荐(1)
摘要: TL;DR:You want to teach yourself vim (the best text editor known to human kind) in the fastest way possible. This is my way of doing it. You start by ... 阅读全文
posted @ 2014-11-23 20:09 Jinkora 阅读(347) 评论(1) 推荐(0)
摘要: 总结一下几种ExchangeTypes。之前写发布/订阅模式时第一次提到了exchange type。即producer不是将消息直接放到队列中,而是先到exchange中,exchange主要用于控制消息到队列的路由,根据具体的exchange type将消息传给需要的队列或者直接废弃。在这一篇中... 阅读全文
posted @ 2014-11-23 19:56 Jinkora 阅读(759) 评论(0) 推荐(0)
摘要: 试着用RabbitMQ进行RPC。其实用RabbitMQ搞RPC也没什么特别的。只是我们需要在请求中再加入一个callback queue。比如这样:callbackQueueName = channel.queueDeclare().getQueue(); BasicProperties prop... 阅读全文
posted @ 2014-11-23 19:51 Jinkora 阅读(783) 评论(0) 推荐(0)
摘要: 在publish/subscribe模式中使用fanout类型有个缺陷,就是不能选择性接收的消息。我们可以让consumer获得所有已发布的消息中指定的几个消息。在之前的例子中我们这样绑定exchange和队列:channel.queueBind(queueName, EXCHANGE_NAME, ... 阅读全文
posted @ 2014-11-15 20:07 Jinkora 阅读(1330) 评论(1) 推荐(1)
摘要: 这次我们试试publish / subscribe模式,也就是将一个消息发送给多个consumer。这里用一个简单的小程序来说明publish / subscribe。由一个provider提供消息,这个消息会被多个consumer接收。consumer对同一个消息做出不同的反应,比如打印、保存到文... 阅读全文
posted @ 2014-11-15 19:59 Jinkora 阅读(1088) 评论(0) 推荐(1)
摘要: 这次我们试着实现这样一个小程序:嗯,就是任务队列(task queue)。不是将任务集中在一堆并一直等到所有任务一并完成为止,而是将每一个任务封装为一个消息,并将其发送到队列,后台的workers就从队列中分担工作。web应用尤其喜欢这种处理方式,比如面对一个请求时我们有一大堆复杂逻辑需要处理,而我... 阅读全文
posted @ 2014-11-15 19:24 Jinkora 阅读(1413) 评论(0) 推荐(1)
摘要: RabbitMQ是个健壮、易用、开源、支持多种操作系统和语言的message broker。当然,一切的前提是机器里面正在运行着rabbitmq-server。点击下面的图片下载:rabbitMQ和AMQP的关系是什么样的?rabbitMQ负责哪部分?如图所示,就是provider和consumer... 阅读全文
posted @ 2014-11-15 19:21 Jinkora 阅读(441) 评论(0) 推荐(0)
摘要: 使用JRebel启动工程时加上VM参数时有一个参数是"-javaagent:D:\jrebel_5.6.0\jrebel.jar"。javaagent是什么? java -help后看到如下信息:Java代理不是应用程序中的一部分,instrument支持Java以代理的形式监控或重新定义运行中的服... 阅读全文
posted @ 2014-11-04 20:22 Jinkora 阅读(3410) 评论(0) 推荐(2)
摘要: 通常,我们更喜欢重用一个对象而不是重新创建一个。如果对象是不可变的,它就始终可以被重用。 下面是一个反面例子: 该语句每次执行时都创建一个新的实例。String构造器中的参数"stringette"本身是一个实例,功能方面等同于那些通过构造器创建的对象。如果这种语句放到循环里,效果会变得更糟。 于是 阅读全文
posted @ 2014-11-04 20:05 Jinkora 阅读(583) 评论(0) 推荐(0)
摘要: 静态工厂和够构造器有一个共同的局限性:遇到大量的参数时无法很好的扩展。 先说说构造器。 其实field不多时重叠构造器(telescoping constructor)是个不错的方法,易于编写也易于调用,这种方式在参数数量较少时也很常见。 但问题是参数很多(可能越来越多)时,比如(现在已经很难找到对 阅读全文
posted @ 2014-11-04 20:00 Jinkora 阅读(1503) 评论(0) 推荐(1)
摘要: 之所以把Latch与Barrier放在一起比较是因为他们给人一种相似的感觉。 他们都是阻塞一些行为直至某个事件发生,但Latch是等待某个事件发生,而Barrier是等待线程。 先比较一下JCIP中对二者的描述: Latch A latch is a synchronizer that can de 阅读全文
posted @ 2014-11-04 19:48 Jinkora 阅读(2505) 评论(0) 推荐(1)
摘要: 没想到要弄这么一个东西。起初只是想用interceptor记录一下webservice调用日志,后来却被要求在页面展示。展示容易,但只是展示webservice的地址无法让用户从中明白什么。那么我可以把url和具体说明作为一对键值,但是这对键值配置到哪里比较好?文件? db? 我不想每增加一个方法就... 阅读全文
posted @ 2014-11-03 20:10 Jinkora 阅读(2761) 评论(0) 推荐(0)
摘要: 相关dependency,我使用的版本是2.7.11: org.apache.cxf cxf-rt-frontend-jaxws ${cxf.version} org.apache.cxf cxf-rt-transports-http ${cxf.version}... 阅读全文
posted @ 2014-11-03 19:14 Jinkora 阅读(546) 评论(0) 推荐(0)
摘要: 现在试试通过JMS,在应用程序之间发送消息。先看看spring提供的RPC方案(其实还有其他方案,只是没见过谁用)。需要使用到这两个类:·org.springframework.jms.remoting.JmsInvokerServiceExporter将bean导出为基于消息的服务·org.spr... 阅读全文
posted @ 2014-11-03 18:54 Jinkora 阅读(842) 评论(0) 推荐(1)
摘要: 下面是ActiveMQ官网提供的文档。http://activemq.apache.org/spring-support.html下面是我添加的一些dependency: javax.jms javax.jms-api 2.0 org.apache.activemq a... 阅读全文
posted @ 2014-11-03 18:49 Jinkora 阅读(1045) 评论(0) 推荐(0)
摘要: 首先需要下载ActiveMQ,下面的链接给我们列出了所有版本:http://activemq.apache.org/download-archives.html每个版本为不同的OS提供了链接:公司电脑是windows的,用目录下的activemq.bat启动:端口号默认是61616,可以在conf/... 阅读全文
posted @ 2014-11-03 18:36 Jinkora 阅读(760) 评论(0) 推荐(0)
摘要: 其实这东西网上到处都是,但并不完整。正好我也遇到了这个问题,不仅仅是预览,还需要得到图片的属性。于是东凑西凑整理出一个完整的版本,并根据个人的理解加上了一点点说明。首先做一些准备工作,HTML方面主要是img和input标签的id: 另外,要为imgFile的c... 阅读全文
posted @ 2014-11-03 16:40 Jinkora 阅读(668) 评论(2) 推荐(0)
visit:click tracking