自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wusq的专栏

程序猿

  • 博客(54)
  • 收藏
  • 关注

转载 Spring整合Junit例子

Spring3的测试框架可以和Junit4整合,通过Junit4的@RunWith注解指定SpringJUnit4ClassRunner.class的测试运行器,该运行器是Spring提供的,可以将Spring容器和Junit4测试框架整合。        @ContextConfiguration也是Spring提供的注解,它用于指定Spring的配置文件。简单例子如下:import

2013-11-06 21:30:47 803

原创 Logback使用例子

Logback是由log4j创始人Ceki Gülcü设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其

2013-09-17 21:47:26 4386

原创 UI收藏

统计图1、Flot,基于jQuery的统计图

2013-07-29 10:50:05 478

原创 搭建Maven开发环境

本人开发环境:Win8,eclipse4.2,Java7。一、安装Maven并配置环境变量        1、首先去Maven官网下载,目前最新的正式版是3.0.5,下载地址是http://maven.apache.org/download.cgi,下载apache-maven-3.0.5-bin.zip后解压即可,例如放在F盘。        2、配置Maven环境变量,跟配置Jav

2013-06-23 11:02:30 2441

转载 建造者模式(Builder)

工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。public interface Sender { public void Sen

2013-05-26 10:08:49 712

转载 抽象工厂模式(Abstract Factory)

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。请看例子:public interface

2013-05-26 09:33:11 459

转载 工厂方法模式(Factory Method)

工厂方法模式分为三种:1、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例子)首先,创建二者的共同接口:public interface Sender { public void Send();}其次,创建实现类:public class MailSender implements

2013-05-26 09:22:11 423

转载 解释器模式(Interpreter)

解释器模式一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。        Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码如下:public interface Expression { public int interpret(Context context);}public class Plus implements

2013-05-26 09:05:27 496

转载 中介者模式(Mediator)

中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图:        User类统一接口,User1和User2分别是不同的对象,二者之间有关联,如

2013-05-26 08:55:13 470

转载 访问者模式(Visitor)

访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。其缺点就是增

2013-05-26 08:43:04 724

转载 状态模式(State)

核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。看图:        State类是个状态类,Context类可以实现切换,我们来看看代码:public class State

2013-05-26 08:29:28 489

转载 备忘录模式(Memento)

主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。做个图来分析一下:        Original类是原始类,里面有需要保存的属性value及创建一个备忘录类,用来保存value

2013-05-26 08:18:39 489

转载 命令模式(Command)

命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。我们看看关系图:        Invoker是调用者(司令员),Receiver是被调用者(士兵),My

2013-05-26 08:07:15 423

转载 责任链模式(Chain of Responsibility)

责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。先看看关系图:        Abstracthandler类提供了get和set方法,方便MyHandle类设置和修改引用对象,MyHandle

2013-05-26 07:56:47 482

转载 迭代器模式(Iterator)

迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图:        这个思路和我们常用的一模一样,MyCollection中定义了集合的一些操作,MyIterator中定义了一系列迭代操作,且持有Collection实

2013-05-26 07:43:34 634

转载 观察者模式(Observer)

观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系。先来看看关系图:        解释下这些类的作用:MySubject类就是我们的主对象,Observer

2013-05-26 07:26:38 468

转载 模板方法模式(Template Method)

解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图:        就是在AbstractCalculator类中定义一个主方法calculate,calculate()调用spilt()等,Plus和Minus分别继承Abstract

2013-05-25 19:42:35 497

转载 策略模式(Strategy)

策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:        图中ICalculator提供统一的方法,AbstractCalculator是辅助类,提供辅助方法,接下来,依次实现下每个类:

2013-05-25 19:31:19 474

转载 享元模式(Flyweight)

享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。                FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象,FlyWeight是超类。一提到共享池,我们很容易联想到Jav

2013-05-25 15:23:18 478

转载 组合模式(Composite)

组合模式有时又叫部分--整体模式在处理类似树形结构的问题时比较方便,看看关系图:直接看代码:import java.util.Enumeration;import java.util.Vector;public class TreeNode { private String name; private TreeNode parent; private

2013-05-25 15:08:00 509

转载 桥接模式(Bridge)

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:实现

2013-05-25 14:53:22 547

转载 外观模式(Facade)

外观模式是为了解决类与类之间的依赖关系的,像Spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)        代码如下:public class CPU { public void startup(){ Sy

2013-05-25 14:25:42 524

转载 代理模式(Proxy)

其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。先来看看关系图:根据上文的阐述,代理模式就比较容易

2013-05-25 14:10:20 547

转载 装饰模式(Decorator)

顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:       Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下public interface Sourceable { public void method();}pu

2013-05-25 13:59:03 437

转载 适配器模式(Adapter)

适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:        类的适配器模式,核心思想就是,有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Ta

2013-05-25 13:26:35 464

转载 原型模式(Prototype)

原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。在Java中,复制对象是通过clone()实现的。        对象的复制分为浅复制和深复制:浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。深复制:将一个对象复制后,不论是基本数据类

2013-05-24 15:37:59 575

转载 设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。设计模式的六大原则1、开闭原则(Open Close Principle)

2013-05-10 16:48:18 656

原创 PointUtils工具类

基于JTS的Point工具类,不断完善中……package util;import com.vividsolutions.jts.geom.Coordinate;import com.vividsolutions.jts.geom.GeometryFactory;import com.vividsolutions.jts.geom.Point;/** * Point工具类 *

2013-05-08 09:36:41 742

原创 JSON设置属性转换器的方法

最近在做空间数据方面的工作,想要定制Geometry数据的JSON格式,从这学到一招JSON过滤属性,设置属性转换器的方法。beanpackage test;import org.codehaus.jackson.annotate.JsonIgnore;import org.codehaus.jackson.map.annotate.JsonSerialize;import

2013-04-15 20:37:40 1063

原创 Windows下ArcGIS Desktop10安装过程

安装环境:Windows Server 2008。ArcGIS Desktop10需要 .NET Framwork 3.5 SP1 的支持,所以系统中必须安装 .NET Framwork 3.5 SP1 ,如果你没有安装 .NET Framwork 3.5 SP1 的话,在安装 ArcGIS Desktop 10 的时候会提示你。建议先安装Framework,ArcGIS的安装光盘中提供了安装程序

2013-03-24 10:47:34 1191

原创 Windows下ArcSDE10安装过程

安装环境:Windows Server 2008;Oracle11g64位。1、选择安装版本2、接下来是:欢迎页面--》接收许可协议--》选择安装路径--》安装完成。3、安装完成后会弹出安装后设置页面4、选择Complete5、输入安装Oracle时,设置的sys用户口令,Net service name指的是Oracle的sid。6、创建s

2013-03-21 21:10:04 1017

原创 Windows下64位Oracle11g安装过程

安装环境:Windows server 2008。官网下载win64_11gR2_database_1of2.zip和win64_11gR2_database_2of2.zip,均解压到当前文件夹下,运行setup.exe。安装过程:1、配置安全更新:电子邮件可输可不输。2、安装选项:3、系统类:个人电脑装桌面类,服务器自然装服务器类了。4、网格安装

2013-03-21 20:26:52 714

原创 ArcCatalog中添加空间数据库连接

首先确保开启了数据库服务和ArcSDE服务。见下图配置1、Server:要连接的数据库服务器名称或IP。2、Service:ArcSDE服务名称。3、Database:大概是Oracle的sid。可以测试连接。

2013-03-12 13:18:34 2567

原创 PL/SQL Developer连接64位Oracle

在网上搜了一下,很多解决方案,大体上都一样,只是有的资料全面一点,有的简陋一点,经过亲自实践验证,总结一下吧。PL/SQL Developer不支持64位Oracle客户端的连接,只能用32位的客户端了。通常情况下,用PL/SQL Developer连接Oracle是需要安装Oracle客户端软件的,其实Oracle为我们提供了轻便的工具Oracle Instantclient packa

2013-03-11 16:30:48 1200

转载 Oracle创建表空间

原文地址:http://www.cnblogs.com/netsql/articles/1745978.html,表示谢意。注意点:1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行2.确保路径存在,比如【D:\oracle\oradata\Oracle9i\】也就是你要保存文件的路径存在/*分为四步 *//*第1步:创建临时表空间

2013-03-07 09:18:50 439

原创 Oracle触发器

查询一个表上有哪些触发器select * from user_triggers where table_owner = 'xxx' and table_name = upper('table_name');

2013-01-25 13:13:55 270

原创 BlazeDS使用例子

建立maven web项目,结构如下webapp展开如下pom.xml中引用spring-flex-core:1.5.2.RELEASE即可。下载blazeds-bin-4.0.0.14931.zip,在war包blazeds\WEB-INF\flex下面有四个xml文件,复制到所建项目WEB-INF下。如果与spring集成,可以自建spring-flex-con

2013-01-21 20:07:36 521

原创 收藏的资源

1、RIA藏经阁:各种前端电子书。2、Flex权威指南随书代码:此书各个版本的随书代码。3、win8 KMSmicro激活教程4、跟我学spring35、MyBatis原理分析6、不安装oracle客户端也可以使用pl/sql developer,解决中文乱码问题,见http://www.cnblogs.com/volnet/archive/2012/05/22/2513728

2013-01-08 18:58:07 395

原创 自己用的工具类(一)

/** * 收集一些方法,封装为工具类 * @author wusq * @since 2012/12/31 */public class MyUtils{ /** * 为字符串去掉空格(简化程序代码,省去非空判断) * @param str 字符串 * @return * @since 2012/12/31 */ public static String t

2013-01-02 21:39:21 237

原创 MySQL数据源配置

driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mysql所需jar:mysql-connector-java-5.1.21.jar

2013-01-02 20:53:59 362

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除