- 博客(58)
- 收藏
- 关注
转载 数据库索引
一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的
2010-05-19 09:21:00
297
原创 Jconsole
JDK中Jconsole的使用 2008-04-03 14:16 JAVA应用程序打成jar包的部署方式: 一、Local方式 1、cmd进入dos下,进入到应用程序所在目录,执行语句如下: java -Dcom.sun.management.jmxremote -jar 程序名.jar (java -Dcom.sun.management.jmxremote -jar Java2Demo.jar
2009-04-22 09:50:00
2448
原创 HTTP协议头字段
http的header fields在开发的web部分经常用到,今天机器网络有些异常,在做协议抓包分析的时候想起做一份完整的header fields索引,用到的时候可以按照索引查阅http规范。 (HTTP协议完整规范参见W3C官方网站http://www.w3.org/Protocols/) http头的组成:============== HTTP头字段包括4类:
2009-04-15 13:14:00
435
转载 在并发环境下,解决共享资源冲突
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。1.对象的锁所有对象都自动含有单一的锁。JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁。每当任务离开一个synchronized方法,计数
2009-02-10 21:51:00
398
原创 acegi 安全框架基于数据库存储method的控制
最近完成了一个框架基于acegi安全部分,现将相关method的控制部分代码贴出来 1、基于方法的拦截器 class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor"> 2、认证管理 3、授权管理
2009-02-05 14:03:00
414
原创 线程池与其工作队列
相信这篇文章大家都看过了 这里总结下jdk1.5线程池的使用 一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueu
2009-02-05 11:15:00
1586
转载 领域驱动设计和开发实战
作者 Srini Penchikala译者 王丽娟 发布于 2009年1月15日 上午12时30分 背景领域驱动设计(DDD)的中心内容是如何将业务领域概念映射到软件工件中。大部分关于此主题的著作和文章都以Eric Evans的书《领域驱动设计》为基础,主要从概念和设计的角度探讨领域建模和设计情况。这些著作讨论实体、值对象、服务等DDD的主要内容,或者谈论通用语言、界定的上下文(Bou
2009-01-21 15:55:00
627
转载 ESB 专题 面向消息的EAI组件
企业集成有很多种模式,随着技术的发展,实时的、面向消息的企业集成越来越成为主流,面向消息的企业集成的稳定性和兼容性要求其基础件,也就是message系统必须提供足够强壮和可扩展的设计,下面几种是作为面向消息的企业集成的基础件所必须提供的几个关键性组件。 消息集成使得message系统负责转换两个应用之间的数据格式,从而使得应用可以专注于他们需要共享什么数据而不是如何共享它们。 以下
2009-01-14 12:59:00
933
1
原创 Servlet listener
1、Servlet Listener 共有8个可以实现的监听器接口,和6种相对应的触发事件,实现在触发不同事件时执行相应的操作。如下java 代码// import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; //
2009-01-08 00:16:00
3057
1
原创 类加载
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。正是因为 Ja
2009-01-07 20:46:00
2969
原创 ThreadLocal在深入
我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。虽然模板类通过资源池获取数据连接或会话,但资源池本身解
2009-01-06 23:53:00
5643
原创 ThreadLocal与synchronized
1.区别ThreadLocal 与 synchronized ThreadLocal是一个线程隔离(或者说是线程安全)的变量存储的管理实体(注意:不是存储用的),它以Java类方式表现; synchronized是Java的一个保留字,只是一个代码标识符,它依靠JVM的锁机制来实现临界区的函数、变量在CPU运行访问中的原子性。 两者的性质、表现及设计初衷不同,因此没有可比较性。 2.理
2009-01-06 20:01:00
437
转载 Hadoop
Hadoop 是Google MapReduce 的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需
2009-01-04 16:11:00
1130
转载 对于GC回收优化
下文是转贴于http://www.javadby.com/yuyanjichu/20080322/5220.html。因为这几天压力测试,然后再重温GC的时候,觉得这片文章写得比较详细,对于去看GC print有一些帮助。转贴一下。 调整JVM GC(Garbage Collection),可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但
2009-01-04 10:16:00
1413
原创 消息中间件和JMS
当前,CORBA、DCOM、RMI等RPC中间件技术已广泛应用于各个领域。但是面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:(1)同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;(2)客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行;如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;(3)点
2008-12-26 20:23:00
285
原创 Java并发变成实践
1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变量是final类型的 c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易.3, 编写多线程程序, 首先保证它是正确的, 其次再考虑性能.4, 无状态或只读对象永远是线程安全的.5, 不要将一个共享变量裸露在多线程环境下(无同步
2008-12-26 13:08:00
297
原创 JMX
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。 JMX的前身是JMAPI。 JMX致力于解决分布式系统管理的问题,因此,能够适合于各种不同的环境是非常重要的。为了能够利用功能强大的Java计算环境解
2008-12-25 18:17:00
313
原创 在谈DDD
Eric Evans所著的《领域驱动设计》(Domain-Driven Design:通常简称为“DDD”)一书可以说是经典中的经典,虽然“领域”的概念早就存在,但是直到这本书的出现,才让人们真正开始认真审视软件的构建,相信你看了这本书后会真正体会领域的力量,也正是这个力量决定了软件最终的价值。领域的含义: 简单的说,每个软件程序都会与其用户的活动或兴趣相关,其
2008-12-18 21:17:00
361
转载 领域驱动设计 工厂与仓储
在DDD中通常可以分为四个层次:用户界面、应用层、领域层、基础设施层。 用户界面,也就是表示层。为用户提供操作界面,同时也会做一些简单的逻辑运算。这个层次一般可以采用MVC风格进行细化,View(V)提供操作界面、Controller(C)作为调度器接收用户请求并选择合适的View显示给用户、Modle(M)在这里只作为表现层简单的数据模型,而不是整个系统的业务模型。它通常可以是
2008-12-18 17:41:00
919
转载 装饰者模式
装饰者模式 Central Perk的名字因为《老友记》而享誉全球,他们的分店几乎开遍世界各地。他们发展的实在是太快了,所以他们此时正在急于实现一套由计算机管理的自动化记账系统。在第一次研究了他们的需求以后,开发者设计了如下图的类结构: Beverage是所有饮料的基类;cost()是抽象方法,所有子类都需要定义它们自己的cost()实现来返回特定饮料的价钱
2008-11-04 22:30:00
631
转载 最简单的LRU算法实现,线程安全的
LRU算法用途之广就不说了,凡是要用cache的地方都可以见到它的身影。特别是线程多,并发高,数据量大的环境下。 jdk1.5真好,在LinkedHashMap.java的源码中直接有这样的字样、“This kind of map is well-suited to building LRU caches.......The removeEldestEntry(Map.Entry) method
2008-11-03 10:06:00
463
原创 数据库存取缓冲区的LRU与MRU算法
数据库存取缓冲区的LRU与MRU算法 1.Cache Hit and Cache Miss当使用者第一次向数据库发出查询数据的请求的时候,数据库会先在缓冲区中查找该数据,如果要访问的数据恰好已经在缓冲区中(我们称之为Cache Hit)那么就直接用缓冲区中读取该数据.反之如果缓冲区中没有使用者要查询的数据那么这种情况称之为Cache Miss,在这种情况下数据库就会先从磁盘上读取使
2008-11-03 10:05:00
441
转载 java线程安全
概述 在探讨java线程安全前,让我们先简要介绍一下Java语言。 任何语言,如C++,C#,Java,它们都有相通之处,特别是语法,但如果有人问你,Java语言的核心是什么?类库?关键字?语法?似乎都不是。Java语言的核心,也就是Sun始终不愿意开源的东西:Java虚拟机的实现(不过sun公开了其Java虚拟机规范),也就有了BEA的JRockit,IBM的Jikes,Sun的Hotspot。
2008-11-02 21:27:00
2241
原创 Maven应用
1.Maven的安装1.1Windows 2000/xp下的安装1. 解压缩maven-2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假设你选择了C:/ProgramFiles/Apache Software Foundation/maven-2.0.2.2. 将C:/Program Files/Apache Software
2008-10-29 18:11:00
1505
原创 会话跟踪技术:会话Cookie,URL重写和HttpSession
一,会话跟踪(session tracking)技术 会话是客户端发送请求,服务器返回响应的连接时间段。 HTTP是无状态协议:每次都是单独连接,不能维持客户的上下文信息。 会话跟踪技术是用于维持客户端和服务器端通信信息的技术。 三种典型客户端会话跟踪解决方案: 1,Cookie; 2,URL重写; 3,隐藏表单域;二,会话Cookie 用于会话跟踪的Cookie叫做会话Cook
2008-10-29 10:18:00
691
原创 为图片增加水印
package com.iwallet.biz.common.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import ja
2008-10-07 16:19:00
565
原创 Tomcat 启动分析
1 - Tomcat Server的组成部分1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton)1.2 - Service A Service element represents the combination of one or more Conne
2008-09-27 17:38:00
282
原创 JVM GC监控
一、GC监控GC日志记录了内存使用和回收状态,出现内存故障时,可作为分析排查手段。1. 启用GC监控的方法:增加java启动参数-verbose:gc,输出信息的样例: GC 135: total final references 4390; cleared final references 8. GC 135: total phantom references 0; cleared
2008-09-27 10:37:00
1222
原创 集群环境下SESSION处理
在集群部署的情况下,应用程序需要做出调整,主要集中在四个方面:对httpsession的处理、对缓存的处理、共享的文件系统、synchronized关键字的失效。对httpsession的处理对httpsession的处理最为重要,因为对WEB程序而言,httpsession无疑是最重要的全局资源,它需要被多个web服务器所共享。无共享的集群架构(SNA),在这样的集群中,每个节点具备
2008-09-24 22:49:00
3628
转载 java虚拟机参数配置
在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最佳新能。另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“OutOfMemory”类型的错误。呵呵,这其中很可能就是JVM
2008-09-11 13:10:00
646
原创 DWR应用
dwr可以让我们在浏览器中使用javascript调用服务器端的java代码。dwr主要包括两部分:运行在客户端的js代码发送请求到服务器端;服务器端的dwr servlet处理请求,并将结果和数据返回到客户端。有一张关于dwr很精确的图: DWR简单配置:1.首先dwr.jar是必须的。下载后放在/WEB-INF/lib目录下。 2.在/WEB-IN
2008-09-08 21:42:00
523
原创 MQ
本篇将通过一个实例介绍使用spring发送,消费topic, queue类型消息的方法. 不懂topic和queue的google 之. TOPIC和QUEUE分别代表一个topic和一个queue消息通道. TopicMessageProducer向topic发送消息, TopicConsumerA和TopicConsumerB则从topic消费消息. QueueMes
2008-08-28 21:14:00
677
转载 WebService的事务处理
因为这个问题讨论起来内容比较多一些,所以另开一个话题。 如果你只是要解决两个系统之间的事务同步问题,可以采用判断服务是否成功的办法来解决,即: * A系统开始自己的事务,处理自己的数据,然后。。。 * 在提交之前调用B系统的服务。 * B系统开始自己的事务B,在事务中处理数据,再提交事务。 * B系统把自己事务的提交成功与否的信息做为返回值回馈A系统。
2008-08-28 17:41:00
9338
2
原创 MQ消息队列
消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供公共的信息交换机制是重要的。
2008-08-28 09:27:00
1847
转载 服务化后的事务处理(一)
事务协调服务框架 在分布式的、无状态,且透明的环境中的事务管理,以及作为面向服务的体系架构(Service-Oriented Architecture,SOA),呈现出明显的困难。SOA 底层的体系架构直接与确保关键业务操作完整性的需求是冲突的,该体系架构中,服务应该是无状态的,广大用户可以访问到的松耦合的业务操作。当事务广泛地分布在也许能或也许不能参与标准的、两阶段提交事务的商业伙伴
2008-08-27 15:09:00
822
转载 Mule的经典实例LoanBroker
应用公司ESB(采用MULE)已经快2年了。在此给入门者看下mule的发型包里的一个经典实例LoanBroker,整理一下笔记,若有写得不准确的地方,还望各位大侠不吝赐教。 一 一,安装及部署 1. Jdk。最好1.5版本以上吧,我比较超前,用的1.6.安装完成之后配上环境变量。 2. Mule。我下载
2008-08-26 12:36:00
1985
原创 敏捷开发
我觉得推行一个新技术最大的阻力还是来自程序员自身管理层一般不会关心开发方法和技术细节的问题struts的流行恐怕主要也是技术人员发自内心的认可和推崇造成的吧毕竟这牵涉到他的切身利益(工作效率、成就感、乐趣。。。)同样的道理,单元测试和其他敏捷方法也要首先打动技术人员的心,然后想不流行都难目前的情况与这两种技术本身的特点也有关,单元测试是阳春白雪,struts是下里巴人初次接触,本能的抗拒
2008-08-21 17:14:00
439
1
原创 结合Maven2进行J2EE项目构建
一.背景 Maven2 的基本原理很简单,采用远程仓库和本地仓库以及 pom(project object model).xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。如图 1 。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形
2008-08-20 10:06:00
567
转载 用XML解决SOA的数据治理
虽然当今有许多与SOA相关的话题和对其所作的大量宣传,那些寻求将面向服务架构整合到IT基础设施的机构并没有忽略设计中那些和数据整合、管理以及治理相关的问题。他们解决了一些问题,但是,在与其他系统和方案进行互操作时,他们经常会遇到许多有趣的问题。事实上,这些问题令系统和SOA的交互作用变得既复杂又耗费精力。 关键是要意识到机构数据的价值,不论这些数据身在何处——是SOA下方还是外部
2008-08-19 12:57:00
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人