03 2013 档案
mule开发环境搭建
摘要:安装eclipse mule开发插件相关插件地址见svn:http://dist.muleforge.org/mule-ide/updates-2.1.x/安装配置mule运行环境下载mule-standalone-2.2.1.zip1、将mule-standalone-2.2.1.zip解压至磁盘;2、配置环境变量MULE_HOME=mule-standalone-2.2.1.zip的解压路径;3、配置eclipse:将mule开发插件安装成功之后,eclipse Preferences会出现Mule选项菜单 阅读全文
posted @ 2013-03-29 10:49 ThinkFar 阅读(409) 评论(0) 推荐(0)
BigInteger引申的一个访问权限控制解决方案
摘要:BigInteger是个无限大整数类。看下面一段代码:BigInteger big=new BigInteger("3");二进制11big.testBit("0");true big.testBit("1");true看了以上代码,采用二进制位来判定权限。我们就想给用户比如设定权限值为3.系统定义了权限如下:ROLE_ADD(1,"角色创建")ROLE_EDIT(2,"角色修改")一个http请求约束的条件是比如是需要权限ROLE_ADD才可以访问,当判断用户权限为3.testBit(1)时候 阅读全文
posted @ 2013-03-27 15:42 ThinkFar 阅读(226) 评论(0) 推荐(0)
activemq应用总结(四)
摘要:BrokerCluster Broker Cluster主要是通过network of Brokers在多个ActiveMQ实例之间进行消息的路由。Broker的集群分为Static Discovery和Dynamic Discovery两种。(1)StaticDiscovery集群Static Discovery集群就是通过硬编码的方式使用所有已知ActiveMQ实例节点的URI地址。如:消息生产者应用连接一个ActiveMQ实例,我们暂时称为MQ1,所有的消息都由该实例提供;两个消息消费者应用分别连接另外两个ActiveMQ实例,分别为MQ2和MQ3,两个消息消费者需要消费MQ1上的... 阅读全文
posted @ 2013-03-27 15:13 ThinkFar 阅读(592) 评论(0) 推荐(0)
activemq应用总结(三)
摘要:DLQ-死信队列(Dead LetterQueue)用来保存处理失败或者过期的消息。出现以下情况时,消息会被redeliveredA transacted session is used and rollback() is called.A transacted session is closed before commit is called.A session is using CLIENT_ACKNOWLEDGE and Session.recover() iscalled.当一个消息被redelivered超过maximumRedeliveries(缺省为6次,具体设置请参考后面的链接 阅读全文
posted @ 2013-03-27 14:28 ThinkFar 阅读(417) 评论(0) 推荐(0)
activemq应用总结(二)
摘要:1.应用activemq时候会出现activemq当机问题,出现该问题我们如何处理呢?当acitvemq出现问题时候我们首先想到负载均衡,当一台mq当机我们采用备用activemq。2.那该如何实现负载均衡呢?有三种方式:Master-slave,数据库共享模式,文件共享模式。3.实际项目中采用的方式Master-slave的思想是,消息被复制到slave broker,因此当master broker遇到硬件类故障的时候,可以立即切换到slave broker而不丢失消息。Master-slave是目前ActiveMq推荐使用的高可靠的容错方案。在我们的系统中采用文件系统做持久化(Share 阅读全文
posted @ 2013-03-26 13:51 ThinkFar 阅读(374) 评论(0) 推荐(0)
activemq应用总结(一)
摘要:1.mq发送消息准备配置 <spring:bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <spring:property name="brokerURL" value="${activemq.brokerURL}" /> <spring:property name="userName" value="${activemq.username}" 阅读全文
posted @ 2013-03-26 11:22 ThinkFar 阅读(479) 评论(0) 推荐(0)
Java面试题
摘要:1.关于1...n的全排列。比如:1,2,3的全排列为123,132,213,231,312,321public class Test { public static void main(String[] args) throws Exception { String[] array = new String[] { "1", "2","3"}; int length=array.length; listAll(Arrays.asList(array), "",length); } public static vo 阅读全文
posted @ 2013-03-25 15:37 ThinkFar 阅读(177) 评论(0) 推荐(0)
Hadoop初识
摘要:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1209hadoopbigdata/1.什么是Hadoop?以下是 Hadoop 的几种定义,每种定义都针对的是企业内的不同受众:对于高管:Hadoop 是 Apache 的一个开源软件项目,目的是从令人难以置信的数量/速度/多样性等有关组织的数据中获取价值。使用数据,而不是扔掉大部分数据。对于技术管理人员:一个开源软件套件,挖掘有关您的企业的结构化和非结构化大数据。Hadoop 集成您现有的商业智能生态系统。法律:一个由多个供应商打包和支持的开源软件套件。工程:大 阅读全文
posted @ 2013-03-21 17:39 ThinkFar 阅读(191) 评论(0) 推荐(0)
轻量级企业服务总线Mule学习记录
摘要:Mule 官方文档http://www.mulesoft.org/documentation/display/current/Getting+Started+with+Mule+Studio1. 简介Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。2. 整体结构图 整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、Tra 阅读全文
posted @ 2013-03-15 10:58 ThinkFar 阅读(1212) 评论(0) 推荐(0)
设计模式之访问者模式
摘要:定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类图:访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下:View Code class A { public void method1(){ System.out.println("我是A"); } public void method2(B b){ b.showA(this); }}class B { public void showA(A a){ ... 阅读全文
posted @ 2013-03-12 13:59 ThinkFar 阅读(206) 评论(0) 推荐(0)
静态常量调用初始化问题
摘要:package com.yhj.jvm.classloader.finalTest;import java.util.Random;/** * @Description:静态成员测试 * @Author YHJ create at 2011-6-26 下午02:54:23 * @FileName com.yhj.jvm.classloader.finalTest.$StaticClassTest.java */class StaticClassTest{ public static int staticValue = 2 / 1; static{ System.out... 阅读全文
posted @ 2013-03-11 10:15 ThinkFar 阅读(459) 评论(0) 推荐(0)
JVM体系结构及各部分职能(二)
摘要:2.序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需 阅读全文
posted @ 2013-03-08 16:36 ThinkFar 阅读(179) 评论(0) 推荐(0)
JVM体系结构及各部分职能(一)
摘要:一.体系结构图二、各部分职能1.类装载器子系统而Java虚拟机自带的加载器又包括3种类加载器根类加载器(Bootstrap):负责加载核心JavaClass(即所有java.*开头的类)扩展类加载器(Extension):负责加载扩展的Javaclass(例如所有javax.*开头的类和存放在JRE的ext目录下的类)系统类加载器(Ststem):负责加载应用程序自身的类系统类加载器又称为应用类加载器其中扩展类加载器和系统类加载器是使用Java实现的。而根加载器是使用C++实现的,JVM的API也没有暴露根类加载器,程序员无法在Java代码中获取根加载器。类通过JVM的Classloader加 阅读全文
posted @ 2013-03-08 14:06 ThinkFar 阅读(323) 评论(0) 推荐(0)
设计模式之中介者模式
摘要:定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类图:中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分:抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中介者实现类:从抽象中介者继承而来,实现抽象中介者中定义的事件方法。从一个同事类接收消息,然后通过消息影响其他同时类。同事类:如果一个对象会影响其他的对象,同时也会被其他对象影响,那么这两个对象称为同事类。在类图中,同事类只有一个,这其实是现实的省略,在实际应用中,同 阅读全文
posted @ 2013-03-08 11:08 ThinkFar 阅读(404) 评论(0) 推荐(0)
设计模式之模板模式
摘要:定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类图:事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排序就有点麻烦了。但是A有办法,先把打印功能完成,排序功能另找人做。View Code abstract class AbstractSort { /** * 将数组array由小到大排序 * @param ar... 阅读全文
posted @ 2013-03-07 15:54 ThinkFar 阅读(173) 评论(0) 推荐(0)
设计模式之观察者模式
摘要:定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类图:在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单;再比如,我们要设计一个自动部署的功能,就像eclipse开发时,只要修改了文件,eclipse就会自动将修改的文件部署到服务器中。这两个功能有一个相似的地方,那就是一个对象要时刻监听着另一个对象,只要它的状态一发生改变,自己随之要做出相应的行动。其实,能够实现这一点的方案很多,但是,无疑使用观 阅读全文
posted @ 2013-03-07 15:20 ThinkFar 阅读(254) 评论(0) 推荐(0)
Oracle行列转换
摘要:数据表如下所示:student subject grade ---------------------------student1 语文 80student1 数学 70student1 英语 60student2 语文 90student2 数学 80student2 英语 100……转换为语文 数学 英语student1 80 70 60student2 90 80 100 ……语句如下: select student,sum(decode(subject,'语文', grade,null)) "语文", sum(decode(s... 阅读全文
posted @ 2013-03-06 16:22 ThinkFar 阅读(136) 评论(0) 推荐(0)
设计模式中类的关系
摘要:在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1.依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。View Co.. 阅读全文
posted @ 2013-03-06 13:37 ThinkFar 阅读(325) 评论(1) 推荐(0)
集群中的Session同步
摘要:在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。1. 客户端cookie加密简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。 问题:session中数据不能太多,最好只有个用户id。 参考实现:http://rollerweblogger.org/2. application server的session复制 可能大部分应用服务器都提供了session复制的功能来实现集群,tomcat,jboss,was都提供了这样的功能。 问题:性能随着服务器 阅读全文
posted @ 2013-03-05 15:09 ThinkFar 阅读(234) 评论(0) 推荐(0)