Spring中AOP的Introductions使用介绍(五)

一、概述

  • Introductions允许一个切面声明一个实现指定接口的通知对象,并且提供了一个接口实现类来代表这些对象

1.1、实例

1、自定义Plane类

package com.wry.bean;
 
public class Plane {
 
	public void fly(){
		System.out.println("plane flying");
	}
}

2、定义接口Vehicle


package com.wry.bean;
 
public interface Vehicle {
	public void drive();
}

3、接口实现类VehicleImpl

package com.wry.bean;
 
public class VehicleImpl implements Vehicle{
 
	@Override
	public void drive() {
		System.out.println("vehicle driving");
	}
 
}

4、xml配置

       <bean id="plane" class="com.wry.bean.Plane"></bean> 
       <bean id="myAspect" class="com.wry.aspect.MyAspect"></bean> 
       <aop:config>
       		<aop:aspect id="myAspectAOP" ref="myAspect">
       			<aop:declare-parents types-matching="com.wry.bean.Plane(*)" 
       			implement-interface="com.wry.bean.Vehicle"
       			default-impl="com.wry.bean.VehicleImpl"/>	
       		</aop:aspect>
       </aop:config>

5、测试

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring.xml");   
		Vehicle vehicle = (Vehicle)context.getBean("plane"); 
        vehicle.drive();

6、结果

   vehicle driving 

7、总结

  • 在aop:declare-parents标签中,types-matching是Plane类,implement-interface是Vehicle接口,在测试类中获取Plane对象时,AOP将plane对象转化为vehicle对象,意思是给Plane类增加了一个父类Vehicle,上面“提供了一个接口实现类来代表这些对象”,即用Vehicle接口代表plane对象,给它增加一个父类才能转化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值