博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring】- 接口代理、类代理
阅读量:7294 次
发布时间:2019-06-30

本文共 1964 字,大约阅读时间需要 6 分钟。

hot3.png

Spring通过接口代理能提高程序代码的灵活性,接口代理的四个步骤:

  • 配置被代理的目标类
  • 配置通知
  • 配置通知的作用切入点
  • 配置接口的代理对象(Spring默认为接口代理)

配置:

sayHello
com.zhiwei.target.TargetInter
com.zhiwei.target.TargetInter01
beforAdvicePacket

目标对象:

package com.zhiwei.target;public class TargetObject implements TargetInter ,TargetInter01{    	private String name;		public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	@Override	public void sayHello() {		System.out.println("Hello "+name);	}	@Override	public void sayBye() {		System.out.println("Bye "+name);	}}

目标对象实现接口:

package com.zhiwei.target;public interface TargetInter01 {  public void sayBye();}
package com.zhiwei.target;public interface TargetInter {		public void sayHello();}

测试类:

package com.zhiwei.target;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.zhiwei.target.TargetInter;import com.zhiwei.target.TargetInter01;import com.zhiwei.target.TargetObject;public class TestAOP {	public static void main(String[] args) {				ApplicationContext ac=new ClassPathXmlApplicationContext("com/zhiwei/target/applicationContext.xml");				//使用IOC容器里里面的代理对象,默认接口代理		TargetInter ti=(TargetInter) ac.getBean("proxyObject");		System.out.println("默认接口代理");		ti.sayHello();			//因为是接口代理,接口指向同一个目标对象:	TargetInter01 ti01=(TargetInter01) ac.getBean("proxyObject");		TargetInter01 ti01=(TargetInter01) ti;		ti01.sayBye();				//IOC配置开启类代理		TargetObject to=(TargetObject) ac.getBean("proxyObject");		System.out.println("\n\nIOC配置为类代理");		to.sayHello();		to.sayBye();	}}

结果:

转载于:https://my.oschina.net/yangzhiwei256/blog/3017096

你可能感兴趣的文章
redis(7)、redis持久化
查看>>
super
查看>>
Unity的NGUI插件篇——入场效果
查看>>
puppet初探
查看>>
saltstack模块 --cp
查看>>
wireshark无权限
查看>>
Xamarin.Forms使用Slider注意问题
查看>>
rebar Erlang构建工具(转)
查看>>
导入已有工程相关问题解决实录
查看>>
PPTP一键安装包
查看>>
我的友情链接
查看>>
使用Simditor和七牛上传图片
查看>>
处理微信文章中防盗链问题
查看>>
开发检测MySQL主从同步插件
查看>>
cacti0.8.8安装文档
查看>>
二维变长数组
查看>>
码农如何快速打造一个有设计感的网站
查看>>
使用RMAN VALIDATE验证数据和备份
查看>>
VMware中三种网络连接的区别
查看>>
RAID重组和数据库数据的修复与验证
查看>>