读书人

引出通知

发布时间: 2012-08-21 13:00:21 作者: rapoo

引入通知
后置通知:AfterReturningAdvice方法
1.新建一个《MyAfterAdvice.java》


package cn.csdn.advice;

import java.lang.reflect.Method;


import org.springframework.aop.AfterReturningAdvice;

public class MyAfterAdvice implements AfterReturningAdvice{
/*
* 第一个参数:方法的返回值
* 第二个参数:方法对象
* 第三个参数:方法的参数
* 第四个参数:目标对象
*/
@Override
public void afterReturning(Object returnvalue, Method md, Object[] args,
Object target) throws Throwable {
System.out.println(returnvalue+md.getName()+args+target);
System.out.println("...........员工下班之后打卡................");
}

}

代理对象的目标只能是一个

引入通知:
创建一个:
Modifydate.java接口
package cn.csdn.service;

import java.util.Date;

public interface Modifydate {
/*设置属性方法*/
void setDate(Date date);
/*获取属性方法*/
Date getDate();
}


创建一个ModifyDateimpl.java类


package cn.csdn.service;

import java.util.Date;

import org.springframework.aop.support.DelegatingIntroductionInterceptor;

public class ModifyDateImpl extends DelegatingIntroductionInterceptor implements Modifydate{
private Date date;
@Override
public Date getDate() {
// TODO Auto-generated method stub
return date;
}

@Override
public void setDate(Date date) {
this.date=date;

}

}

配置文件:
<!-- 声明引入通知 -->
<bean id="modifyDateImpl" />

<!-- 配置advise -->
<bean id="defaultIntroductionAdvisor" ref="modifyDateImpl"></constructor-arg>
</bean>
<!-- 声明代理接口 -->
<property name="proxyInterfaces">
<list>
<value>cn.csdn.service.EmpService</value>
<value>cn.csdn.service.Modifydate</value>
</list>
</property>
<!-- 拦截器的名称 -->
<property name="interceptorNames">
<list>
<value>defaultIntroductionAdvisor</value>
</list>
</property>

读书人网 >软件架构设计

热点推荐