摘要: 迁移:使用消息队列异步化系统前言 前期为了快速开发,项目结构较为混乱,代码维护与功能扩展都比较困难,为了方便后续功能开发,最近对项目进行的重构,顺便在重构的过程中将之前的部分操作进行了异步处理,也第一次实际接触了JMS与消息队列。项目中采用的消息中间件为ActiveMQ。什么是JMS Java消... 阅读全文
posted @ 2014-05-10 13:30 BuilderQiu 阅读(1361) 评论(0) 推荐(1) 编辑
摘要: 迁移:基于Redis的在线用户列表解决方案前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案可以采用SessionListener来完成,当有Session创建和销毁的时候做相应的操作即可完... 阅读全文
posted @ 2014-01-24 15:31 BuilderQiu 阅读(15371) 评论(5) 推荐(2) 编辑
摘要: 前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案。涉及技术:1、Spring AOP2、Java Annotation3、Memcache (项目中使用的缓存组件)4、JVM基础 (Class文件结构,用于解析出方法中的形参名称,动态生成缓存key,目测效率不高0.0)5、Ognl (用于动态解析缓存的key)实现细节:Annotation:LoadFromMemcached 用与method之上的注解,作用是使带有该注解的method在调用的时候先经过缓. 阅读全文
posted @ 2014-01-05 21:29 BuilderQiu 阅读(4156) 评论(0) 推荐(2) 编辑
摘要: 项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘。 1 CREATE PROCEDURE jsp_query_page @sql varchar(2000),@start int, @pageSize int as 2 3 begin 4 declare @ipage int 5 declare @rcount int 6 declare @execsql varchar(2000) 7 declare @sql1 varchar(2000) 8 declare @t int,@p ... 阅读全文
posted @ 2013-09-26 10:12 BuilderQiu 阅读(2034) 评论(2) 推荐(0) 编辑
摘要: Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人想出来。运行时数据区域: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。1、程序计数器 程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需... 阅读全文
posted @ 2012-11-18 15:33 BuilderQiu 阅读(2092) 评论(0) 推荐(2) 编辑
摘要: 前言: 今天在写一个Android的项目的时候需要服务器通过返回Json对象传递数据,Json中的数据是一个List对象,List中是一堆自定义Message对象。但是在返回的时候接收到的却是空数据。{"list":[]} 服务器采用的是Struts2+Hibernate+Mysql。这部分功能实现只与Struts2有关。正文: 很久没有使用Struts2,出现问题的时候以为是记错了,需要在Action中自己对Json进行封装,或者是Message类需要实现序列化等,调试皆不能解决问题。 1 public class GetNewsAction { 2 public int 阅读全文
posted @ 2012-01-07 00:19 BuilderQiu 阅读(14915) 评论(11) 推荐(4) 编辑