<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
定义异常通知:
package com.interceptor;
import java.lang.reflect.Method;
import java.util.Arrays;
import org.springframework.aop.ThrowsAdvice;
public class ThrowAdvice implements ThrowsAdvice {
// 至少要有 afterThrowing 方法签名
public void afterThrowing(Method method, Object[] args, Object target,
RuntimeException e) {
System. out .println( " 异常通知 " + method.getName() + " 参数 : "
+ Arrays. toString (args) + " 目标对象 " + target);
throw new NumberFormatException();
}
}
-
静态代理模式:
IHello.java 定义如下:
package org.staticproxy;
public interface IHello {
public void sayHello(String name);
}
HelloSpeaker.java 接口实现类定义如下:
package org.staticproxy;
public class HelloSpeaker implements IHello{
public void sayHello(String name){
System. out .println( " Hello , " +name);
}
}
HelloProxy.java 代理类如下:
package org.staticproxy;
import java.util.logging.*;
public class HelloProxy implements IHello{
private Logger logger = Logger. getLogger ( this .getClass().getName());
private IHello iHello ;
public HelloProxy(IHello iHello){
this . iHello = iHello;
}
public void sayHello(String name){
log( "hello method starts .... " );
iHello .sayHello(name);
log( "hello method ends ..... " );
}
public void log(String msg){
logger .log(Level. INFO ,msg);
}
public static void main(String[] args){
HelloProxy proxy = new HelloProxy ( new HelloSpeaker());
proxy.sayHello( "scott" );
}
}