动态代理入门

简介: 动态代理入门
public class ProxyFactory {
    public static  Object getAgent(Service target,Aop aop)
    {
            return Proxy.newProxyInstance(
                    //类加载器
                    target.getClass().getClassLoader(),
                    //目标对象实现的所有接口
                    target.getClass().getInterfaces(),
                    //代理功能的实现
                    new InvocationHandler() {
                        @Override
                        public Object invoke(
                                //生成的代理对象
                                Object proxy,
                                //正在调用的目标方法
                                Method method,
                                //目标方法的参数
                                Object[] args
                        ) throws Throwable {
                            aop.before();
                            Object invoke = method.invoke(target,args);
                            aop.afeart();
                            return invoke;
                        }
                    }
            );
    }
}


public interface Aop {
    default  void before(){};
    default  void afeart(){};
    default  void end(){};
}


public class logAop implements  Aop{
    @Override
    public void before() {
        System.out.println("日志开启");
        Aop.super.before();
    }
}


public class TranAop implements  Aop{
    @Override
    public void before() {
        System.out.println("事物开启");
        Aop.super.before();
    }
    @Override
    public void afeart() {
        System.out.println("事物进行");
        Aop.super.afeart();
    }
    @Override
    public void end() {
        System.out.println("事物关闭");
        Aop.super.end();
    }
}


public interface Service {
    void buy();
}


public interface Service {
    void buy();
}


public class buyBook implements Service {
    @Override
    public void buy() {
        System.out.println("buy BOOK");
    }
}


public class buyShop implements Service {
    @Override
    public void buy() {
        System.out.println("buy shop");
    }
}
相关文章
|
开发工具 Android开发 开发者
Android UI设计: 解释Android的Nine-Patch图像是什么,它用于什么目的?
Android UI设计: 解释Android的Nine-Patch图像是什么,它用于什么目的?
197 4
|
存储 运维 Kubernetes
服务搭建篇(十二) Kubernetes集群的安装及部署
在所有k8s node机器执行上图第三个红框里的命令 将node节点加入进master节点的集群里,复制上图第三个红框里的命令执行(执行自己的命令)
417 0
|
Android开发
Flutter控件的显示与隐藏
Flutter控件的显示与隐藏
457 3
|
9月前
|
数据采集 机器学习/深度学习 人工智能
《驯服“过拟合”之兽:守护人工智能算法的精准与稳健》
在人工智能发展中,过拟合是算法训练中常见问题,指模型过度学习训练数据中的细节和噪声,导致对新数据泛化能力差。为避免过拟合,需从数据质量和数量入手,确保数据多样性并适当增加数据量。同时,数据预处理(如归一化)、选择合适的模型复杂度、应用正则化技术(如L1/L2正则化)、采用早停法和交叉验证等方法,可有效提高模型的稳定性和准确性。防范过拟合至关重要,尤其在医疗、金融等领域,以确保算法的可靠性和实用性。
136 17
|
存储 人工智能 程序员
【重学C++】【内存】关于C++内存分区,你可能忽视的那些细节
【重学C++】【内存】关于C++内存分区,你可能忽视的那些细节
352 1
|
搜索推荐 机器人 云计算
纳米机器人:医疗领域的微型革命与精准治疗
【9月更文挑战第16天】随着科技的飞速发展,纳米技术成为推动多个领域变革的重要力量。在医疗领域,纳米机器人以其独特优势引领着微型革命与精准治疗新时代。本文探讨其在药物输送、癌症治疗、手术辅助及疾病诊断中的应用,并分析其小型化、精准化、智能化与综合化的优势。尽管面临制造技术、体内控制等挑战,但随着科技的进步,纳米机器人有望成为人类健康的重要保障。
670 10
|
存储 人工智能 安全
人工智能浪潮下的数据隐私保护技术
在大数据与人工智能(AI)的高速发展中,数据隐私保护成为亟待解决的关键议题。本文将探讨当前AI时代下数据隐私保护的技术手段及其面临的挑战,并分析未来发展趋势。文章首先介绍数据隐私的重要性和当前面临的风险,然后深入讨论加密技术和匿名化处理等保护措施,最后评估这些技术的有效性及潜在的改进方向。
612 0
|
存储 SQL 关系型数据库
16. Mysql 自定义函数
16. Mysql 自定义函数
200 1
|
存储 关系型数据库 MySQL
RDS for MySQL测试
【4月更文挑战第28天】
186 1