1.准备工作
1.1 准备jar包
2.基于xml的aop实现
2.1创建项目
2.2创建类
2.2.1创建Book类
public class Book { public void add(){ System.out.println("Book里面的add方法"); } }
2.2.2创建MyBook类
public class MyBook { public void before1(){ System.out.println("MyBook中的before方法"); } }
2.2.3在xml上面添加
<bean id="book" class="com.xiaobo.aop.Book"></bean> <bean id="myBook" class="com.xiaobo.aop.MyBook"></bean> <!--配置aop操作--> <aop:config> <!--配置切入点--> <aop:pointcut id="point1" expression="execution(* com.xiaobo.aop.Book.*())" ></aop:pointcut> <!--配置切面 把增强用到方法后面 --> <aop:aspect ref="myBook"> <!--配置增强类,method为增强类中哪个方法为前置--> <aop:before method="before1" pointcut-ref="point1"></aop:before> </aop:aspect> <aop:aspect ref="myBook"> <!--配置增强类,method为增强类中哪个方法为前置--> <aop:after method="before1" pointcut-ref="point1"></aop:after> </aop:aspect> </aop:config>
2.2.4进行测试
@Test public void testaop(){ ApplicationContext context=new ClassPathXmlApplicationContext("bean2.xml"); Book book = (Book) context.getBean("book"); book.add(); }
2.2.5结果
3.基于注解的方式
3.1新建一个xml文件,添加如下代码,开启注解;
<!--配置对象--> <bean id="book" class="com.xiaobo.aop.Book"></bean> <bean id="myBook" class="com.xiaobo.aop.MyBook"></bean> <!--一句话自动开启注解aop操作--> <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
3.2创建类
//定义切面 @Aspect public class Book { //定义要以特定增强的方式的增强方法,book先执行 @Before(value = "execution(* com.xiaobo.aop.MyBook.*(..))") public void add(){ System.out.println("Book里面的add方法"); } }
public class MyBook { public void before1(){ System.out.println("MyBook中的before方法"); } }
3.3进行测试
@Test public void testaop2(){ ApplicationContext context=new ClassPathXmlApplicationContext("bean3.xml"); MyBook book = (MyBook) context.getBean("myBook"); book.before1(); }