- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Google Guava缓存实现接口的限流
一.项目背景最近项目中需要进行接口保护,防止高并发的情况把系统搞崩,因此需要对一个查询接口进行限流,主要的目的就是限制单位时间内请求此查询的次数,例如1000次,来保护接口。 参考了 开涛的博客聊聊高并发系统限流特技 ,学习了其中利用Google Guava缓存实现限流的技巧,在网上也查到了很多关于Google Guava缓存的博客,学到了好多,推荐一个博客文章:http://ifeve.com/
2016-06-20 15:06:36 1330 1
原创 springMVC:HandlerInterceptor拦截器的使用
1.使用背景Web项目中需要判断http接口用户Post上来的数据是否合法,如果不合法要另做处理,用户Post上来的数据是Json形式的,我们用了@RequestBody标记自动将json形式的提交封装为一个Model对象,这样一来,我们就不能判断在自动封装过程中是否出现了异常,此时便想起了springMVC中的interceptor,用于处理请求之前,做一些处理,我们可以取消@RequestBod
2016-06-16 21:08:22 53025 2
转载 使用IntelliJ IDEA创建Maven多模块项目
使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系。对于Maven的依赖,也需要专门创建一个模块来管理依赖项。例如对于一个项目,可以创建一个common模块来管理POJO类,创建一个server来管理业务逻辑及数据库操作类,创建一个web模块来组织Web文件,如HTML,JSP等。下图是一个Maven多模块管理的案例项目结构:
2016-06-20 17:03:08 20193
使用IntelliJ IDEA创建Maven多模块项目
使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系。对于Maven的依赖,也需要专门创建一个模块来管理依赖项。例如对于一个项目,可以创建一个common模块来管理POJO类,创建一个server来管理业务逻辑及数据库操作类,创建一个web模块来组织Web文件,如HTML,JSP等。下图是一个Maven多模块管理的案例项目结构: 简单说一下创建过程: 1.首先创建一个空...
2016-06-20 17:03:00 439
Google Guava缓存实现接口的限流
一.项目背景最近项目中需要进行接口保护,防止高并发的情况把系统搞崩,因此需要对一个查询接口进行限流,主要的目的就是限制单位时间内请求此查询的次数,例如1000次,来保护接口。 参考了 开涛的博客聊聊高并发系统限流特技 ,学习了其中利用Google Guava缓存实现限流的技巧,在网上也查到了很多关于Google Guava缓存的博客,学到了好多,推荐一个博客文章:http://ifeve....
2016-06-20 15:06:00 476
springMVC:HandlerInterceptor拦截器的使用
1.使用背景Web项目中需要判断http接口用户Post上来的数据是否合法,如果不合法要另做处理,用户Post上来的数据是Json形式的,我们用了@RequestBody标记自动将json形式的提交封装为一个Model对象,这样一来,我们就不能判断在自动封装过程中是否出现了异常,此时便想起了springMVC中的interceptor,用于处理请求之前,做一些处理,我们可以取消@Reques...
2016-06-16 21:08:00 1338
原创 SpringMVC:JSON形式输出(基于Fastjson)
在Spring3.0中,@ResponseBody标记可以将对象”封装”为JSON形式的数据,并输出,下面的例子中使用的是阿里的Fastjson JSONaz解析工具,在spring配置文件中加入一些额外的配置。
2016-06-07 16:34:13 2952
SpringMVC:JSON形式输出(基于Fastjson)
在Spring3.0中,@ResponseBody标记可以将对象”封装”为JSON形式的数据,并输出,下面的例子中使用的是阿里的Fastjson JSONaz解析工具,在spring配置文件中加入一些额外的配置。1.依赖配置<properties> <spring.version>4.1.4.RELEASE</spring.version> ...
2016-06-07 16:34:00 135
原创 Callable接口解析
Java-Callable接口Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不同之处是call()方法是有返回值的(其实还有一些区别,例如call方法可以抛出异常,run方法不可以),运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计
2016-06-02 18:36:35 10316 1
Callable接口解析
1.接口的定义:public interface Callable<V> { V call() throws Exception; } 2.Callable和Runnable的异同先看下Runnable接口的定义public interface Runnable { public abstract void run();}...
2016-06-02 18:36:00 256
原创 FastJson一些常见方法(API):处理JSON变得好简单
fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,第三方独立测试结果说明比gson快大约6倍
2016-06-01 21:33:59 3830
FastJson一些常见方法(API):处理JSON变得好简单
fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,第三方独立测试结果说明比gson快大约6倍 JSON帮助类 这个可以做一个实例研究代码,也可以作为一个工具类 去调用。 FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。Fastjson支持java b...
2016-06-01 21:33:00 557
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人