Java
文章平均质量分 86
jmppok
这个作者很懒,什么都没留下…
展开
-
监听获取程序退出事件(Linux、Windows、Java、C++)
为什么要监听程序退出事件就不用多说了,有各种各样的需求吧。主要是用于后台程序,比如要在程序退出的时候释放资源,关闭连接等等。下面针对Java、C++在Windows、Linux下的处理分别进行介绍.1.Java监听程序退出事件Java本身是跨平台的,不必关系Windows还是Linux。具体做法如下:通过Runtime.getRuntime().addShutdownHoo原创 2013-11-20 17:50:41 · 15661 阅读 · 1 评论 -
spring-security 3.0.X, 让ajax login和普通login共存
转自: http://my.oschina.net/jilujia/blog/66795使用spring security时遇到一个问题,有大量的ajax post是需要登录控制的,但是默认的spring-security机制导致post结果返回的是登录页。现在要解决几个问题:1,ajax post如果需要登录的话,返回需要登录的json消息,前端可以继续处理2,新建一转载 2015-03-31 15:00:04 · 1545 阅读 · 0 评论 -
Java序列化工具大全及性能比较
来源:https://github.com/eishay/jvm-serializers/wikiFor discussions please use the java serialization benchmarking google group.DisclamerThis test focusses on en/decoding of a cyclefree dat转载 2015-03-18 14:09:10 · 7502 阅读 · 0 评论 -
序列化框架性能对比(kryo、hessian、java、protostuff)
序列化框架性能对比(kryo、hessian、java、protostuff)简介: 优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Protostuff 速度快,基于p转载 2015-03-18 14:13:40 · 15186 阅读 · 0 评论 -
Kryo 为什么比 Hessian 快
Kryo 是一个快速高效的Java对象图形序列化框架,它原生支持java,且在java的序列化上甚至优于google著名的序列化框架protobuf。由于 protobuf需要编写Schema文件(.proto),且需静态编译。故选择与Kryo类似的序列化框架Hessian作为比较来了解一下Kryo 为什么这么快。序列化的过程中主要有3个指标: 1、对象序列化后的大小一个对象会被序转载 2015-03-18 14:16:37 · 2068 阅读 · 0 评论 -
Spring security AccessDeniedHandler 不被调用
在使用Spring Security时,在applicationContext-security.xml中配置了accecc-denied-handler,但是AccessDecisionManager模块明明抛出了AccessDeniedException却不被捕获。是因为只有确实的访问失败才会进入AccessDeniedHandler,如果是未登陆或者会话超时等,不会触发AccessDeniedHandler,而是会直接跳转到登陆页面。所以使用时还是要注意区分登陆失败和没有权限访问的情况。原创 2015-04-02 10:57:58 · 18518 阅读 · 0 评论 -
简单的Java Event-事件框架
代码:http://git.oschina.net/jmpp/CommonEvent自己写的一个简单的Java事件框架。目前具备以下功能:1.通过继承Event类,用户可自定义事件。2.通过EventService 的fireEvent(Event e) 发出一个事件。3.通过实现IEventHandler接口,监听某类事件。EventHandler可以动态注册到EventServ原创 2015-03-18 18:02:22 · 12579 阅读 · 0 评论 -
Spring security3.x 自定义验证Filter
原创文章,欢迎转载!转载时务必保留:作者:jmppok ;出处http://blog.csdn.net/jmppok/article/details/448335451.applicationContext-secrity.xml配置原创 2015-04-02 16:22:26 · 2757 阅读 · 0 评论 -
Log4j简单封装及配置
大家在项目中经常会用到Log4j,一般包括4个步骤:1.编写log4j配置文件;2.初始化log4j;3.获取一个logger实例;4.调用logger.debug() 等记录日志。为了能详细控制每个包和类的日志输出,一般在每个类中都需要定一个logger实例,无形中给使用带来了不便。为了解决这个问题,本人对Log4j进行了一个简单的封装LogHelper.java。原创 2015-04-02 10:18:31 · 4238 阅读 · 3 评论 -
Spring security 3.x 普通login与ajax login笔记
大家都知道,如果Spring Security判断当前用户没有权限访问某个资源时,会根据我们的配置自动跳转到Login页面或者403页面。但实际上这可能并不是我们想要的:因为对于静态资源来说,浏览器一般会进行缓存,一旦缓存后就不会再向服务器请求,也就是说即使没有登陆或权限,静态页面也有可能被显示出来;但这时候对服务段的API调用可能是失败的。如前面所说,API调用失败时,会自动调转到会根据我们的配置自动跳转到Login页面或者403页面(注意这里是一个页面),而这并不是我们想要的结果。因为对于API原创 2015-04-02 16:00:54 · 7181 阅读 · 0 评论 -
AsyncTask -- Java异步调用框架
AsyncTask是个人编写的一个Java异步调用框架,支持用户:1)自定义Task,并可设置Task的类型(Type), 子类型(subType),超时时间(TImeout),标识(Flag-可用来区分不同的Task),Task的输入参数(input)等。2)可通过submitTask,提交 到框架中异步执行,框架查找对应的TaskExectuor,多线程执行。3)可自定义对应TaskExecutor,通过配置添加到框架中。TaskExecutor支持Execotor Chain, 多个Exe原创 2015-03-24 15:07:32 · 15895 阅读 · 2 评论 -
Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken
Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken在前面的学习中,配置文件中的...都是采用的auto-config="true"这种自动配置模式,根据Spring Security文档的说明:------------------auto-config Automat转载 2015-04-01 10:28:02 · 5176 阅读 · 0 评论 -
Java byte[] 转 String 陷阱
今天在将byte[] 转为String,然后再转回byte[] 时发现一个奇诡的问题。byte[]长度出现了变化。具体代码如下: Map map = new HashMap(); map.put("cn1", new Persion("中国1", 30)); map.put("cn2", new Persion("中国2", 30));原创 2015-03-23 14:57:50 · 6481 阅读 · 0 评论 -
自己写的Java 数据结构Tree
发现Java没有Tree,自己简单写了一个。可通过new创建一个Tree,然后获取root Node节点。每个Node节点有自己的Data,并可以获取当前Node的level,parent Node和child Node list。可以在Node上添加,查找和删除child Node。原创 2015-03-23 17:52:35 · 3123 阅读 · 0 评论 -
Java对象序列化小结
在Java中经常会用到对象序列化的地方,比如在持久化存储对象时,传输对象时等。目前Java对象的序列化有很多种,可参见“Java序列化工具大全及性能比较”,但个人认为大致可分为4类:1)序列化对象需要事先实现Serializable接口的,如Java原生的序列化,Hessian, FST-serialization等等。2)使用某种中间语言,事先定义对象的Schema,然后生成相应的Java/C++/Python代码, 如goole的protobuffer,flatbuffer,thrift,ice等等原创 2015-03-23 14:35:31 · 2174 阅读 · 0 评论 -
Java System.LoadLibrary() 能否多次加载同一个动态库?
最近在项目中用到了JNI,Java调用c++程序。写了个JNI调用类 CPPInvokerpublic class CPPInvoker{ public CPPInvoker(String dllFullPath) { System.Load(dllFullPath); } public nati原创 2013-11-26 22:16:41 · 10222 阅读 · 5 评论 -
Java loadlibrary分析及如何unload
Java可以通过System.load 和 System.loadLibrary()加载动态库。但是Java本身并没有提供unload的功能。下面是在网上看到的一个load的原理及如何unload。地址:http://ppjava.com/?p=1273Java加载JNI的动态库,有两种方式:public static void load(String filename转载 2013-12-10 19:26:59 · 10274 阅读 · 0 评论 -
Finagle:一个支持多协议的RPC系统
Finagle是一个协议不可知的,异步的,用于 JVM 的 RPC 系统,它使得在 Java、Scala 或任何基于JVM 的语言重构建鲁棒的客户端和服务器非常容易。在 Twitter.com上面即使是渲染最简单的网页也需要十多个说着不同协议的网络服务的合作。比如,为了渲染首页,应用程序需要向社交网络图(SocialGraph)服务、Memcached、数据库、以及许多其它网络服务发出转载 2013-12-11 19:00:08 · 2972 阅读 · 0 评论 -
Struts2整合Spring方法及原理
一、 Struts 2框架整合Spring步骤1、 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。2、 配置struts.objectFactory属性值。在struts.proper转载 2013-12-04 17:24:33 · 1065 阅读 · 0 评论 -
Scala语言:集成面向对象和函数式编程的特性
简介Scala编程语言近来抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格。Christopher Diggins认为:不太久之前编程语言还可以毫无疑义地归类成“命令式”或者“函数式”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。根据David Rupp在博客中的说法,Sc转载 2013-12-11 15:51:05 · 4009 阅读 · 0 评论 -
分布式应用框架Akka快速入门
Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。原创 2013-12-11 16:47:54 · 77121 阅读 · 5 评论 -
Java中System.loadLibrary() 的执行过程
System.loadLibrary()是我们在使用Java的JNI机制时,会用到的一个非常重要的函数,它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什么动态连接库。算是处于好奇吧,我们可以看一下这个方法它的实现,即执行流程。(下面分析的那些code,来自于android 4.2.2 aosp版。)先看一下这个方法的c转载 2013-12-09 11:23:54 · 1827 阅读 · 0 评论 -
Java使用管道实现进程间通讯
Java使用管道Pipe实现进程间通讯。原创 2013-12-23 13:55:51 · 26570 阅读 · 0 评论 -
Log4J详细配置
来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.htmlLog4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:转载 2015-01-07 10:48:45 · 752 阅读 · 0 评论 -
Scala开发入门教程
转自 http://blog.csdn.net/mapdigit/article/details/21878083Scala开发入门教程Scala语言和其它语言比如Java相比,算是一个比较复杂的语言,它是一个面向对象和面向函数的统一体,使用起来非常灵活,因此也不容易掌握,前面的58篇文章仅仅是Scala的一个入门教程,有了这些基础知识,你就可以开始编写Sc转载 2015-03-05 10:08:08 · 2068 阅读 · 1 评论 -
使用 Spring Data JPA 简化 JPA 开发
转载自:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/#major3从一个简单的 JPA 示例开始本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 S转载 2015-03-27 09:53:53 · 684 阅读 · 0 评论 -
流计算框架 Flink 与 Storm 的性能对比
1. 背景Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中 Apache Storm(以下简称“Storm”)在美团点评实时计算业务中已有较为成熟的运用(可参考 Storm 的可靠性保证测试),有管理平台、常用 API 和相应的文档,大量实时作业基于 Storm 构建。而 Apache Flink(以下简称“Flink”)在近期倍受关注,...转载 2019-07-30 16:40:15 · 428 阅读 · 0 评论