Java implementa la programación AOP

Cualquiera que conozca Spring conoce la programación orientada a aspectos (AOP) de Spring. Aquí no hablamos sobre el aspecto de Spring. Analizaremos la programación de aspectos de Spring más adelante. Queremos explicar cómo implementar AOP en código Java ordinario. Hay dos Hay dos formas de implementar el aspecto AOP, una es la implementación nativa del SDK y la otra se basa en el paquete tripartito cglib.
Primero introduzca el JDK nativo, que se basa en la programación de la interfaz:
primero defina una interfaz: interfaz
pública ISayHelloWorld { cadena pública say (); } Implemente esta interfaz: clase pública ManSayHelloWorld implementa ISayHelloWorld {



 @Override
    public String say() {
        System.out.println("Hello world!");
        return "MAN";
    }

} Para
realizar el proxy de aspecto de ManSayHelloWorld, el AOP nativo necesita implementar la interfaz InvocationHandler para realizar AOP.
public class SayHello { public void say () { System.out.println ("¡hola mundo!"); } } import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method;





public class AOPHandle implementa InvocationHandler {

 private Object obj;
    AOPHandle(Object obj){
        this.obj = obj;
    }
@Override
public Object invoke(Object proxy, Method method, Object[] args)
		throws Throwable {
	// TODO Auto-generated method stub
	//方法返回值
    System.out.println("前置代理");
    //反射调用方法
    Object ret=method.invoke(obj, args);
    //声明结束
    System.out.println("后置代理");
    //返回反射调用方法的返回值
    return ret;
}

}
Pruebe este código:
import java.lang.reflect.Proxy;

public class Main { public static void main (String [] args) { ManSayHelloWorld sayHelloWorld = new ManSayHelloWorld (); AOPHandle handle = new AOPHandle (sayHelloWorld); ISayHelloWorld i = (ISayHelloWorld) Proxy.newProxyInstance (ManSayHelloWorld.class.getClassLoader (), nueva clase [] {ISayHelloWorld.class}, identificador); yo digo(); } } CSDN : java AOP 编程







Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_38127487/article/details/113913358
Recomendado
Clasificación