File: IBusinessLogic.java
public interface IBusinessLogic { public void foo(); }
File: MainApplication.java
import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class MainApplication { public static void main(String [] args) { // Read the configuration file ApplicationContext ctx = new FileSystemXmlApplicationContext("build/springconfig.xml"); //Instantiate an object IBusinessLogic testObject = (IBusinessLogic) ctx.getBean("businesslogicbean"); //Execute the public method of the bean (the test) testObject.foo(); } }
File: TracingAfterAdvice.java
import java.lang.reflect.Method; import org.springframework.aop.AfterReturningAdvice; public class TracingAfterAdvice implements AfterReturningAdvice { public void afterReturning(Object object, Method m, Object[] args, Object target) throws Throwable { System.out.println("Hello world! (by " + this.getClass().getName() + ")"); } }
File: TracingBeforeAdvice.java
import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class TracingBeforeAdvice implements MethodBeforeAdvice { public void before(Method m, Object[] args, Object target) throws Throwable { System.out.println("Hello world! (by " + this.getClass().getName() + ")"); } }
File: BusinessLogic.java
public class BusinessLogic implements IBusinessLogic { public void foo() { System.out.println("Inside BusinessLogic.foo()"); } }
File: springconfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--CONFIG--> <bean id="businesslogicbean" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <value>IBusinessLogic</value> </property> <property name="target"> <ref local="beanTarget"/> </property> <property name="interceptorNames"> <list> <value>theTracingBeforeAdvisor</value> <value>theTracingAfterAdvisor</value> </list> </property> </bean> <!--CLASS--> <bean id="beanTarget" class="BusinessLogic"/> <!--ADVISOR--> <!--Note: An advisor assembles pointcuts and advice--> <bean id="theTracingBeforeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref local="theTracingBeforeAdvice"/> </property> <property name="pattern"> <value>.*</value> </property> </bean> <!--ADVISOR--> <!--Note: An advisor assembles pointcuts and advice--> <bean id="theTracingAfterAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref local="theTracingAfterAdvice"/> </property> <property name="pattern"> <value>.*</value> </property> </bean> <!--ADVICE--> <bean id="theTracingBeforeAdvice" class="TracingBeforeAdvice"/> <bean id="theTracingAfterAdvice" class="TracingAfterAdvice"/> </beans>
28.50.Spring Aspect | ||||
28.50.1. | Spring Tracing Aspect | ![]() | ||
28.50.2. | Spring Aspect Logging | ![]() | ||
28.50.3. | AspectJ Expression Pointcut | ![]() | ||
28.50.4. | AspectJ AutoProxy | ![]() | ||
28.50.5. | Aspect Filter | ![]() | ||
28.50.6. | Aspect Annotation Pointcut Around After | ![]() | ||
28.50.7. | Aspect Annotation | ![]() | ||
28.50.8. | AOP Annotation | ![]() | ||
28.50.9. | Annotation Scope | ![]() | ||
28.50.10. | Spring AOP Examples | ![]() |