Static Pointcut Example : Spring Aspect : Spring : Java examples (example source code) Organized by topic

Java
C++
PHP


Java  »  Spring   » [  Spring Aspect  ]  Screenshots 
 



Static Pointcut Example

/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/



///////////////////////////////////////////////////////////////////////////////////////
public class BeanOne {

    public void foo() {
        System.out.println("foo");
    }
    
    public void bar() {
        System.out.println("bar");
    }
}



///////////////////////////////////////////////////////////////////////////////////////

public class BeanTwo {

    public void foo() {
        System.out.println("foo");
    }
    
    public void bar() {
        System.out.println("bar");
    }
}


///////////////////////////////////////////////////////////////////////////////////////

import java.lang.reflect.Method;

import org.springframework.aop.ClassFilter;
import org.springframework.aop.support.StaticMethodMatcherPointcut;

public class SimpleStaticPointcut extends StaticMethodMatcherPointcut {

    public boolean matches(Method method, Class cls) {
        return ("foo".equals(method.getName()));
    }

    public ClassFilter getClassFilter() {
        return new ClassFilter() {
            public boolean matches(Class cls) {
                return (cls == BeanOne.class);
            }
        };

    }
}

///////////////////////////////////////////////////////////////////////////////////////

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

public class SimpleAdvice implements MethodInterceptor {

    public Object invoke(MethodInvocation invocationthrows Throwable {
        System.out.println(">> Invoking " + invocation.getMethod().getName());
        Object retVal = invocation.proceed();
        System.out.println(">> Done");
        return retVal;
    }

}

///////////////////////////////////////////////////////////////////////////////////////


import org.aopalliance.aop.Advice;
import org.springframework.aop.Advisor;
import org.springframework.aop.Pointcut;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor;

public class StaticPointcutExample {

    public static void main(String[] args) {
        BeanOne one = new BeanOne();
        BeanTwo two = new BeanTwo();
        
        BeanOne proxyOne;
        BeanTwo proxyTwo;
        
        // create pointcut, advice and advisor
        Pointcut pc = new SimpleStaticPointcut();
        Advice advice = new SimpleAdvice();
        Advisor advisor = new DefaultPointcutAdvisor(pc, advice);
        
        // create BeanOne proxy
        ProxyFactory pf = new ProxyFactory();
        pf.addAdvisor(advisor);
        pf.setTarget(one);
        proxyOne = (BeanOne)pf.getProxy();
        
        // create BeanTwo proxy
        pf = new ProxyFactory();
        pf.addAdvisor(advisor);
        pf.setTarget(two);
        proxyTwo = (BeanTwo)pf.getProxy();
        
        proxyOne.foo();
        proxyTwo.foo();
        
        proxyOne.bar();
        proxyTwo.bar();
        
    }
}

           
       
Download: StaticPointcutExample.zip   ( 1,481  K )  
Related examples in the same category
1.  Profiling ExampleHas Download File
2.  Introduction Config ExampleHas Download File
3.  Security ExampleHas Download File
4.  Simple After Returning AdviceHas Download File
5.  Simple Before AdviceHas Download File
6.  Simple Throws AdviceHas Download File
7.  Composable Pointcut ExampleHas Download File
8.  Control Flow ExampleHas Download File
9.  Dynamic Pointcut Example Has Download File
10.  Hello World With PointcutHas Download File
11.  Spring Aspect Introduction ExampleHas Download File
12.  Name Pointcut ExampleHas Download File
13.  Name Pointcut Using AdvisorHas Download File
14.  Proxy Factory Bean ExampleHas Download File
15.  Proxy Perf TestHas Download File
16.  Regexp Pointcut ExampleHas Download File
17.  After Advice ExampleHas Download File
18.  AspectJ Example from Pro SpringHas Download File
19.  Aspect Hello World ExampleHas Download File
























Home| Contact Us
Copyright 2003 - 04 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.