没有合适的资源?快使用搜索试试~ 我知道了~
Spring 学习笔记心得(九)AOP面向切面编程
0 下载量 192 浏览量
2020-12-21
05:10:05
上传
评论
收藏 88KB PDF 举报
温馨提示
试读
6页
首先我们应该想想为什么要使用aop面向切面编程?面向切面的底层实现是什么?小编在这里举个例子吧 小编首先给出Spring全家桶,方便大家下载使用—->Spring全家桶 1.自定义代理对象代理类以及实现类 1.1 定义接口(ArithmeticCacluetator) public interface ArithmeticCacluetator { /* 定义加减乘除四个方法 */ public void add(int i , int j); public void sub(int i , int j); public void mul(int i , int
资源详情
资源评论
资源推荐
Spring 学习笔记心得(九)学习笔记心得(九)AOP面向切面编程面向切面编程
首先我们应该想想为什么要使用首先我们应该想想为什么要使用aop面向切面编程?面向切面的底层实现是什么?小编在这里举个例子吧面向切面编程?面向切面的底层实现是什么?小编在这里举个例子吧
小编首先给出小编首先给出Spring全家桶全家桶,方便大家下载使用方便大家下载使用—->Spring全家桶
1.自定义代理对象代理类以及实现类自定义代理对象代理类以及实现类
1.1 定义接口(定义接口(ArithmeticCacluetator))
public interface ArithmeticCacluetator {
/*
定义加减乘除四个方法
*/
public void add(int i , int j);
public void sub(int i , int j);
public void mul(int i , int j);
public void div(int i , int j);
}
1.2 创建实现类(创建实现类(ArithmeticCacluetatorImpl),并且这里在每一个方法都输出了操作日志),并且这里在每一个方法都输出了操作日志
public class ArithmeticCacluetatorImpl implements ArithmeticCacluetator {
@Override
public void add(int i, int j) {
System.out.println(" i : "+ i + " + " + " j : " + j + " = " + (i + j));
}
@Override
public void sub(int i, int j) {
System.out.println(" i : "+ i + " - " + " j : " + j + " = " + (i - j));
}
@Override
public void mul(int i, int j) {
System.out.println(" i : "+ i + " * " + " j : " + j + " = " + (i * j));
}
@Override
public void div(int i, int j) {
System.out.println(" i : " + i + " / " + " j : " + j + " = " + (i / j));
}
}
1.3 创建测试类:创建测试类:
ArithmeticCacluetator cacluetator = new ArithmeticCacluetatorImpl();
cacluetator.add(1,3);
cacluetator.sub(1,3);
cacluetator.mul(1,3);
cacluetator.div(1,3);
输出结果:
i : 1 + j : 3 = 4
i : 1 – j : 3 = -2
i : 1 * j : 3 = 3
i : 1 / j : 3 = 0
不难发现,这样一一输出会十分的麻烦,每个方法里面都要去写一个输出的日志,这样还会导致代码实现类的可读性很差,所不难发现,这样一一输出会十分的麻烦,每个方法里面都要去写一个输出的日志,这样还会导致代码实现类的可读性很差,所
以我们应当弃用这种写法,而使用代理类来帮助我们实现以我们应当弃用这种写法,而使用代理类来帮助我们实现
1.4 创建代理类(这里默认大家有动态代理基础哈)创建代理类(这里默认大家有动态代理基础哈)
public class ArithmeticCacluetatirProxy {
public static void main(String[] args) {
//真实对象
ArithmeticCacluetatorImpl arithmeticCacluetator = new ArithmeticCacluetatorImpl();
//代理对象
ArithmeticCacluetator arithmeticCacluetator1_proxy = (ArithmeticCacluetator)
Proxy.newProxyInstance(arithmeticCacluetator.getClass().getClassLoader(),
arithmeticCacluetator.getClass().getInterfaces(), new InvocationHandler() {
@Override
weixin_38722329
- 粉丝: 12
- 资源: 960
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0