一、Spring AOP的简单实例
1. 往pom.xml文件添加以下依赖:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.4</version> <scope>test</scope></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.1.2.RELEASE</version></dependency><dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.7.0</version></dependency>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"? xmlns:aop="http://www.springframework.org/schema/aop"? xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"? default-autowire="byName">? <bean id="aspect" />??? <bean id="grace" />??? <aop:config proxy-target-method="beforeAdvice()" />? </aop:aspect>? </aop:config></beans>
public class MyAspect { public void beforeAdvice() { System.out.println("beforeAdvice() is executed!"); }}public class Graceful { public void analogous() { System.out.println("Analogous() is being executed"); }}public class BeforeAdviceTest {@Testpublic void test() {AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans-aop.xml");Graceful graceful = ctx.getBean("grace", Graceful.class);graceful.analogous();}}