Savagearts
Sep 6th, 2004, 10:34 AM
Hi guys:
I'm new to AOP and i try it with spring's AOP framework. But it does not work. Here are some code following:
<?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="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.Defaul tAdvisorAutoProxyCreator">
</bean>
<bean id="beforeAdvice" class="com.savagearts.study.aop.spring.HelloWorldBeforeAd vise"/>
<bean id="helloworld" class="com.savagearts.study.aop.spring.HelloWorld">
<property name="greeting">
<value>hello world</value>
</property>
</bean>
<bean id="pointcut"
class="org.springframework.aop.support.RegexpMethodPointc ut">
<property name="patterns">
<list>
<value>.*get*</value>
</list>
</property>
</bean>
<bean id="advisor"
class="org.springframework.aop.support.DefaultPointcutAdv isor"
singleton="false">
<property name="pointcut">
<ref local="pointcut"/>
</property>
<property name="advice">
<ref local="beforeAdvice"/>
</property>
</bean>
</beans>
public class HelloWorld {
private String greeting;
public String getGreeting(){
return this.greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
public static void main(String[] args)throws Exception{
InputStream in = Thread.currentThread().getContextClassLoader().get ResourceAsStream("applicationContext.xml");
ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld=(HelloWorld)factory.getBean("helloworld");
System.out.print(helloWorld.getGreeting());
}
}
public class HelloWorldBeforeAdvise implements MethodBeforeAdvice{
private int count;
public void before(Method method, Object[] objects, Object o) throws Throwable {
count++;
System.out.print("executing method "+count +" times");
}
}[/code]
I'm new to AOP and i try it with spring's AOP framework. But it does not work. Here are some code following:
<?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="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.Defaul tAdvisorAutoProxyCreator">
</bean>
<bean id="beforeAdvice" class="com.savagearts.study.aop.spring.HelloWorldBeforeAd vise"/>
<bean id="helloworld" class="com.savagearts.study.aop.spring.HelloWorld">
<property name="greeting">
<value>hello world</value>
</property>
</bean>
<bean id="pointcut"
class="org.springframework.aop.support.RegexpMethodPointc ut">
<property name="patterns">
<list>
<value>.*get*</value>
</list>
</property>
</bean>
<bean id="advisor"
class="org.springframework.aop.support.DefaultPointcutAdv isor"
singleton="false">
<property name="pointcut">
<ref local="pointcut"/>
</property>
<property name="advice">
<ref local="beforeAdvice"/>
</property>
</bean>
</beans>
public class HelloWorld {
private String greeting;
public String getGreeting(){
return this.greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
public static void main(String[] args)throws Exception{
InputStream in = Thread.currentThread().getContextClassLoader().get ResourceAsStream("applicationContext.xml");
ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld=(HelloWorld)factory.getBean("helloworld");
System.out.print(helloWorld.getGreeting());
}
}
public class HelloWorldBeforeAdvise implements MethodBeforeAdvice{
private int count;
public void before(Method method, Object[] objects, Object o) throws Throwable {
count++;
System.out.print("executing method "+count +" times");
}
}[/code]