`
raymond.chen
  • 浏览: 1436962 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
一、概念      在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。      结合反射机制,可以使得访问者模式适用范围更广。   二、类图      
一、本图片生成器具有以下功能特性:      1、可以设置图片的宽度、高度、外框颜色、背景色;      2、可以设置图片字体的大小、名称、颜色;      3、可以设置输出图片的格式,如JPEG、GIF等;      4、可以将图片存储到一个文件或者存储到一个输出流;      5、可以为图片增加若干条干扰线(在生成随机码图片时可用此特性);      6、打印在图片上的文字支持自动换行;      7、可以将文字旋转指定弧度数;     二、下面列出相关的源代码      1、抽象类AbstractImageCreator的源代码 /** * 模板方法模式应用 ...
策略模式的本质:少用继承,多用组合。   策略模式属于对象的行为模式。处理多于一个算法的时候,把算法和使用算法的客户端分开(把行为和环境分开),从而方便的选择其中一个算法。    针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。    
     Spring AOP的应用:在处理业务短信之前,可以执行前置方法,在处理业务短信之后,可以执行后置方法。      策略模式的应用:不同的业务对应不同的短信格式,业务短信可以随时新增、删除,扩展性高。      模板方法模式的应用:业务短信的校验和最后处理定义成抽象方法,而且,要先通过校验后才能作最后的处理。      访问者模式的应用:每种校验规则都是对所属的短信处理器进行校验。        相关的源代码、类图、配置信息如下:    一、类图     二、类源代码      1、抽象类AbstractNoteProcessor源代码 public abstract class Ab ...
更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。   1.插入操作(Insert)       Inserted表有数据,Deleted表无数据 2.删除操作(Delete)       Inserted表无数据,Deleted表有数据 3.更新操作(Update)       Inserted表有数据(新数据),Deleted表有数据(旧数据)   一、insert触发器 create trigger tr_COMMISSIONINFO_INSERT on COMMISSION_INFO ...

Java动态代理

    博客分类:
  • Java
JDK1.2以后提供了动态代理的支持,程序员通过实现java.lang.reflect.InvocationHandler接口提供一个执行处理器,然后通过java.lang.reflect.Proxy得到一个代理对象,通过这个代理对象来执行商业方法,在商业方法被调用的同时,执行处理器会被自动调用。       Java动态代理只能对实现了接口的类生成代理,不能针对类。其实现主要是通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约 ...
一、MINA框架简介      Apache MINA(Multipurpose Infrastructure for Network Applications) 是用于开发高性能和高可用性的网络应用程序的基础框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各种繁杂而又烦人问题(线程、性能、会话等),把更多精力专著在应用中的业务逻辑的开发上。   二、MINA框架的常用类:      IoAccepter      相当于服务器端     IoConnector   相当于客户端     I ...
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/> <property name="jdbcUrl" value="jdbc ...

Commons FTP范例

    博客分类:
  • Java
public class FtpUtil { private FTPClient ftpClient; private String hostname; private int port; private String username; private String password; private String remoteDir; public FtpUtil(String hostname, int port, String username, String password, String remoteDir){ this.hostname = hostnam ...

读书笔记

1、在one-to-many关系中,将many一方设为主控方(inverse=false),由many方维护关联关系,有助于性能的改善。       <set name="simSaleses" inverse="false" cascade="save-update">            <key>                   <column name="FID_" />            </key>            <one-to-ma ...

部署流程定义

    博客分类:
  • jbpm
  JbpmConfiguration config = JbpmConfiguration.getInstance();  JbpmContext context = config.createJbpmContext();    //删除所有流程定义版本  GraphSession session = context.getGraphSession();  List defList = session.findAllProcessDefinitionVersions("LEAVE");  if(defList != null && defList.size( ...
一、包规范     1、report包 CREATE OR REPLACE package report as type cursorType is ref cursor; type CommInfo is record( id_ varchar2(60), name_ varchar2(200), comm_category_name_ varchar2(60), city_company_name_ varchar2(200), district_name_ varchar2(100), county_company_name_ varchar2(200), ...
1、拦截器相关基础类      Interceptor接口            --> AbstractInterceptor抽象类                 --> MethodFilterInterceptor抽象类(支持方法过滤)     2、配置拦截器      <interceptor name="拦截器名" class="拦截器实现类">   3、使用拦截器      <interceptors>           <interceptor name="mySi ...
query:使用hsql语句,可以设置参数是常用的一种方式 criteria:尽量避免了写hql语句,看起来更面向对象了。 find:这种方式已经被新的hibernate丢弃 get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1,从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2,从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执行则比较复杂 1,首先查找sess ...
四、下拉框数据获取方法的源代码 public String findOptions() throws Exception{ String entityName = getRequest().getParameter("_ENTITY"); String keyField = getRequest().getParameter("_KEY"); String descField = getRequest().getParameter("_DESC"); String orderBy = getRequest().getParame ...
Global site tag (gtag.js) - Google Analytics