在非WEB环境中关闭 java 进程 及 spring 容器

static AbstractApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:context.xml");
static boolean isDo = true;

public static void main(String[] args) throws InterruptedException {
	for(int i=0; i<10; i++){
		new Producer().start();
	}
	ctx.registerShutdownHook();
	Runtime.getRuntime().addShutdownHook(new Thread() {
		public void run() {
			try {
				isDo = false;
				Thread.sleep(1000);
				//ctx.close();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println(ctx.getBean("messageListener", TestAmqSpringMessageListener.class).getCounter());
		}
	});
}

php 复制对象

private function makeStr($str, $dt){
    $tmp_dt = clone $dt;
    $tmp_dt->modify('+1 day');
    $str = $tmp_dt->format('m/d').'-'.$str;
    unset($tmp_dt);
    return $str;
}

1、PHP5对象复制是采用引用的方式;
2、如果不采用引用方式,则需要在复制对象时加关键字 clone;
3、如果在复制的过程中,同时要变更某些属性,则增加函数 _clone();