1.業務類
package?cn.blogjava.aop;
public?class?HelloSpeaker?implements?IHello?{
????public?void?hello(String?name)?{
????????System.out.println("Hello,?"?+?name?);
????}
}
2.將要添加Aspect的方法抽象到接口中
package?cn.blogjava.aop;
public?interface?IHello?{
????public?void?hello(String?name);
}
3.實現MethodBeforeAdvice接口,實現log功能
package?cn.blogjava.aop;
import?java.lang.reflect.Method;
import?java.util.logging.Level;
import?java.util.logging.Logger;
import?org.springframework.aop.MethodBeforeAdvice;
public?class?LogBeforeAdvice?implements?MethodBeforeAdvice{
????
????private?Logger?logger?=?Logger.getLogger(this.getClass().getName());
????
????public?void?before(Method?method,?Object[]?args,?Object?targer){
????????logger.log(Level.INFO,?"method?starts
"?+?method);
????}
}
4.配置文件
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING/DTD?BEAN/EN"
????"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
????<bean?id="logBeforeAdvice"?
????????class="cn.blogjava.aop.LogBeforeAdvice"/>
????<bean?id="helloSpeaker"
????????class="cn.blogjava.aop.HelloSpeaker"?/>
????<bean?id="helloProxy"
????????class="org.springframework.aop.framework.ProxyFactoryBean">
????????<property?name="proxyInterfaces">
????????????<value>cn.blogjava.aop.IHello</value>
????????</property>
????????<property?name="target">
????????????<ref?bean="helloSpeaker"?/>
????????</property>????????
????????<property?name="interceptorNames">
????????????<list>
????????????????<value>logBeforeAdvice</value>
????????????</list>
????????</property>????????
????</bean>
</beans>
5.測試類
package?cn.blogjava.aop;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.FileSystemXmlApplicationContext;
public?class?SpringAopDemo?{
????public?static?void?main(String[]?args)?{
????????ApplicationContext?context?=?
????????????new?FileSystemXmlApplicationContext("beans-config.xml");
????????IHello?helloProxy?=(IHello)context.getBean("helloProxy");
????????helloProxy.hello("YYY");
????}
}
posted on 2006-07-28 17:07
knowhow 閱讀(326)
評論(0) 編輯 收藏 所屬分類:
Framework