Spring AOP 学习之静态代理

来源:互联网 发布:艺术签名免费设计软件 编辑:程序博客网 时间:2024/06/05 17:07

AOP:aspect oriented programming 面向切面编程 将一个功能做成一个切面类,要用的时候,动态的置入到目标中的过程。
Spring的代理有两种,分别为动态代理和静态代理
现在看静态代理

1、ProductBiz接口,定义一个addProduct 业务方法

package com.yc.biz;public interface ProductBiz {    public void addProduct();}

2、ProductBizImpl实现类

package com.yc.biz;//真实主题public class ProductBizImpl implements ProductBiz {    @Override    public void addProduct() {        System.out.println("**********************");        System.out.println("添加产品");        System.out.println("**********************");    }}

如果我们需要在添加产品前进行权限验证,那么这个时候我们需要添加代理。

代理类

package com.yc.biz;//代理类public class ProductBizRightProxy implements ProductBiz {    private ProductBiz productBiz;    public ProductBizRightProxy(ProductBiz productBiz) {        this.productBiz=productBiz;    }    @Override    public void addProduct() {        //加入检查权限的功能//前置增强        check();        this.productBiz.addProduct();    }    private void check(){        System.out.println("=================");        System.out.println("检查权限");        System.out.println("=================");    }}

测试类:

package com.yc.biz;public class Test {    public static void main(String[] args) {        ProductBiz pb=new ProductBizRightProxy(new ProductBizImpl());        pb.addProduct();    }}

输出:
这里写图片描述

0 0
原创粉丝点击