摘要: 项目中需要用到包扫描的情况是很多的,一般是在项目初始化的时候,根据一些条件来对某个package下的类进行特殊处理。现在想实现的功能是,在一个filter或interceptor初始化的时候,扫描指定的一些package路径,遍历下面的每个class,找出method上使用了一个特殊注解的所有方法, 阅读全文
posted @ 2017-02-08 10:46 j.liu windliu 阅读(4580) 评论(0) 推荐(0) 编辑
摘要: 参考java并发编程的艺术一书中,对ConcurrentHashMap的讲解 ConcurrentHashMap使用的是分段锁Segment来保证不同的Segment区域互相不干扰,不存在锁竞争关系,从而提升map的效率. 由于ConcurrentHashMap中存放的是Segment数组,每个Se 阅读全文
posted @ 2017-02-08 10:30 j.liu windliu 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 先抛出问题。以下两个方法声明有毛区别: 这是在一个Controller里面的接口方法声明,这两个方法,一个声明了 另一个没有,他们看似没有区别,但是spring mvc的套路里面,他们在特殊场景下的区别大的你想哭。 先描述问题的源头: 某天刮风,飘来了一个接口需要处理 http://localhos 阅读全文
posted @ 2017-02-08 10:28 j.liu windliu 阅读(3433) 评论(0) 推荐(0) 编辑
摘要: 搭建一个新工程时,想使用最新稳当版的springmvc,所以选择了最新的版本 然后用以往的经验写了一个极其简单的Controller方法 然而,奇怪的事情发生了。 参入参数:http://localhost:8088/1/2/cates.json?goodIds=2,3 运行时goodIds始终为n 阅读全文
posted @ 2017-02-08 10:14 j.liu windliu 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 我们经常会看到这样的语法 0xAD实际是个16进制,转换成二进制为:10101101,转换成10进制是:173,它是个正数 10101101只是int的简写,int由4个byte字节,即32位bit组成,实际的值是 int由4 byte组成,因此int转byte是会掉位的,直接截取最后一个字节,即: 阅读全文
posted @ 2017-02-08 10:09 j.liu windliu 阅读(26667) 评论(0) 推荐(0) 编辑
摘要: velocity的标签中支持$abc 这样的语法,如果abc是一个对象,则写模板时就可以利用它来进行反射,调用一些危险的方法,如 通过反射,让系统本身出现了安全漏洞,这类危险的操作,可以通过屏蔽反射来杜绝,在velocity属性中添加一行配置即可 velocity默认的配置为: 本文主要讨论从vel 阅读全文
posted @ 2017-02-08 09:59 j.liu windliu 阅读(560) 评论(0) 推荐(0) 编辑