随笔分类 -  java

摘要:要使用JsApi进行微信支付,首先要从微信获得一个prepay_id,然后通过调用微信的jsapi完成支付,JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_... 阅读全文
posted @ 2015-07-28 22:27 纵酒挥刀斩人头 阅读(4404) 评论(0) 推荐(0)
摘要:## Spring RestTemplate简单说明现在REST服务已经很普及了,在我们的程序中,经常会需要调用REST API,这时候会有很多选择,原始一点的JDK自带的,再进一步点使用HttpClient,或者说如果我们使用Jersey这种框架的话,也会自带rest client。但是我们项目使... 阅读全文
posted @ 2015-06-20 00:57 纵酒挥刀斩人头 阅读(13568) 评论(1) 推荐(1)
摘要:在上一篇中写到了Spring MVC的异常处理,SpringMVC捕获到异常之后会转到相应的错误页面,但是我们REST API ,一般只返回结果和状态码,比如发生异常,只向客户端返回一个500的状态码,和一个错误消息。如果我们不做处理,客户端通过REST API访问,发生异常的话,会得到一个错误页面... 阅读全文
posted @ 2015-06-18 22:26 纵酒挥刀斩人头 阅读(1911) 评论(2) 推荐(0)
摘要:## Using HTTP Status Codes在我们自定义的异常上使用ResponseStatus注解。当我们的Controller抛出异常,并且没有被处理的时候,他将返回HTTP STATUS 为指定值的 HTTP RESPONSE,比如:```java @ResponseStatus... 阅读全文
posted @ 2015-06-18 20:19 纵酒挥刀斩人头 阅读(4469) 评论(0) 推荐(2)
摘要:```javapublic static CloseableHttpClient acceptsUntrustedCertsHttpClient() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException ... 阅读全文
posted @ 2015-06-05 14:17 纵酒挥刀斩人头 阅读(3105) 评论(0) 推荐(0)
摘要:## 创建一个自定义的Annotation```javaimport java.lang.annotation.*;import java.lang.reflect.Method;@Documented@Target(ElementType.METHOD)@Retention(RetentionPo... 阅读全文
posted @ 2015-03-26 22:55 纵酒挥刀斩人头 阅读(3956) 评论(3) 推荐(0)
摘要:## synchronized自从Java提供了多线程编程,我们经常需要处理这样的情况:在特定的时间,我们需要限制访问,确保只有一个线程访问我们的代码。Java提供了同步关键字synchronized来实现这种访问控制,但是使用synchronized会存在一些问题。第一个问题是,当我们需要调用线程... 阅读全文
posted @ 2015-01-26 17:44 纵酒挥刀斩人头 阅读(3036) 评论(0) 推荐(1)
摘要:..................2015年的第一天...................本文代码托管在 https://github.com/hupengcool/disruptor-starter## Intruduction关于吹牛逼的话就不说了。。。Disruptor是Java实现的用于线... 阅读全文
posted @ 2015-01-01 03:47 纵酒挥刀斩人头 阅读(10478) 评论(0) 推荐(0)
摘要:最近在学习了下Google的Guava包,发现这真是一个好东西啊。。由于平时也会写一些基于多线程的东西,所以特意了解了下这个Service框架。这里Guava包里的Service接口用于封装一个服务对象的运行状态、包括start和stop等方法。例如web服务器,RPC服务器、计时器等可以实现这个接... 阅读全文
posted @ 2014-12-22 23:43 纵酒挥刀斩人头 阅读(7521) 评论(2) 推荐(1)
摘要:Full control over file attributes is available in Java 7, as part of the "new" New IO facility [(NIO.2)](https://jcp.org/en/jsr/detail?id=203). For ex... 阅读全文
posted @ 2014-10-31 15:33 纵酒挥刀斩人头 阅读(820) 评论(0) 推荐(0)
摘要:ListenableFuture的说明 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写。出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK concurrent包下的Future 接口,ListenableFuture允许你注册回调方法(c... 阅读全文
posted @ 2014-09-24 18:18 纵酒挥刀斩人头 阅读(14321) 评论(0) 推荐(2)
摘要:1.Zookeeper经常被我们用来做配置管理,配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台 PC Server 运行,但是它们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这个应用系统的 PC Server,这样非常麻烦而且容易出错... 阅读全文
posted @ 2014-09-19 21:15 纵酒挥刀斩人头 阅读(6094) 评论(0) 推荐(0)
摘要:Curator的介绍 Curator就是Zookeeper的一个客户端工具(不知道Zookeeper的同学可以到http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/学习下),封装ZooKeeper client与ZooKe... 阅读全文
posted @ 2014-09-17 10:10 纵酒挥刀斩人头 阅读(4688) 评论(0) 推荐(0)
摘要:首先我们必须知道Tcp粘包和拆包的,TCP是个“流”协议,所谓流,就是没有界限的一串数据,TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际数据进行包的划分,一个完整的包可能会被拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包进行发送。这里引用Netty官网的U... 阅读全文
posted @ 2014-08-23 20:41 纵酒挥刀斩人头 阅读(18160) 评论(0) 推荐(3)
摘要:Executor框架使用Runnable 作为其基本的任务表示形式。Runnable是一种有局限性的抽象,然后可以写入日志,或者共享的数据结构,但是他不能返回一个值。 许多任务实际上都是存在延迟计算的:执行数据库查询,从网络上获取资源,或者某个复杂耗时的计算。对于这种任务,Callable是一... 阅读全文
posted @ 2014-05-29 22:47 纵酒挥刀斩人头 阅读(5195) 评论(0) 推荐(2)
摘要:首先是synchronized 关键字他可以用于声明方法,也可以用于申明代码块。我们看看三个例子:public class SynchronizedDemo1 { public synchronized static void foo1() { } ... 阅读全文
posted @ 2014-05-28 16:21 纵酒挥刀斩人头 阅读(340) 评论(0) 推荐(0)
摘要:现在是多核的时代,面向多核的编程很重要,因此基于java的并发和多线程开发非常重要。 线程池是于队列密切相关的,其中队列保存了所有等待执行的任务。工作者线程的任务很简单:从队列中获取一个任务,执行任务,然后返回线程池,等待下一个任务。 在线程池中执行任务,比为每一个任务分配一个线程优势更多:... 阅读全文
posted @ 2014-05-28 15:43 纵酒挥刀斩人头 阅读(1263) 评论(0) 推荐(1)
摘要:应用场景在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法.典型的应用场景是... 阅读全文
posted @ 2014-04-11 16:40 纵酒挥刀斩人头 阅读(7751) 评论(7) 推荐(2)
摘要:通过Spring自定义event首先我们定义我们的event类package com.hyenas.spring.custom.event;import org.springframework.context.ApplicationEvent;public class CustomEvent extends ApplicationEvent{ private static final long serialVersionUID = -82737763905791865L; public CustomEvent(Object source) { super(so... 阅读全文
posted @ 2014-03-27 21:52 纵酒挥刀斩人头 阅读(580) 评论(0) 推荐(0)
摘要:Spring内置的event有1.ContextRefreshedEventThis event is published when theApplicationContextis either initialized or refreshed. This can also be raised using the refresh() method on theConfigurableApplicationContextinterface.2.ContextStartedEventThis event is published when theApplicationContextis start 阅读全文
posted @ 2014-03-27 20:22 纵酒挥刀斩人头 阅读(1298) 评论(0) 推荐(0)