Spring AOP面向切面编程 2019.11.04

1、AOP简介

1、面向切面编程
1、AOP介绍
Aspect-Oriented Programming:面向接口编程是OOP(Object-Oriented Programming)的一个补充
2、AOP好处:
1、降低模块耦合度
2、使系统容易扩展
3、更好的代码复用性

2、SpringAOP开发

(1)JDK动态代理
创建代理类:ObjectProxy
实现代理方法和创建代理对象方法
invoke参数:Proxy 要代理的对象
method 代理对象的方法
args 参数列表

public class ObjeProxy implements InvocationHandler{

	private Object target;
	
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

		System.out.println(method.getName() + "被執行, 參數如下:");
		for(Object arg : args) {
			System.out.println("參數:" + arg );
		}
		return method.invoke(target, args);
	}

	
	public Object createProxy(Object target) {
		this.target = target;
		return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
	}
}

(2)测试
创建bank接口:

package springboot.aop.proxy;

import java.math.BigDecimal;

public interface BankService {

	public void transfer(String target, String source, BigDecimal money);
	
}

bank实现类:

package springboot.aop.proxy;

import java.math.BigDecimal;

public class BankServiceImpl implements BankService{

	
	public void transfer(String target, String source, BigDecimal money) {
	//	System.out.println(source + "向" + target + "轉賬:" + money);		
	}

}

代理bank:

	public static void main(String[] args) {
		BankService bs = new BankServiceImpl();		
		BankService bsProxy = (BankService) new ObjeProxy().createProxy(bs);
		
		bsProxy.transfer("張三", "Lisi", new BigDecimal("0.3"));
	}

注意事项:
1、代理一定是代理接口,传入参数是接口实现类对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值