package com. test. dao;
public class Book {
public void buy ( ) {
System. out. println ( "buy............." ) ;
}
}
package com. test. dao;
public class BookProxy {
public void before ( ) {
System. out. println ( "before........." ) ;
}
}
package com. test. dao;
import org. junit. Test;
import org. springframework. context. ApplicationContext;
import org. springframework. context. support. ClassPathXmlApplicationContext;
public class TestAop {
@Test
public void testAopXml ( ) {
ApplicationContext context =
new ClassPathXmlApplicationContext ( "bean1.xml" ) ;
Book book = context. getBean ( "book" , Book. class ) ;
book. buy ( ) ;
}
}
< ? 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: context= "http://www.springframework.org/schema/context"
xmlns: aop= "http://www.springframework.org/schema/aop"
xsi: schemaLocation= "http: / / www. springframework. org/ schema/ beans http: / / www. springframework. org/ schema/ beans/ spring- beans. xsd
http: / / www. springframework. org/ schema/ context http: / / www. springframework. org/ schema/ context/ spring- context. xsd
http: / / www. springframework. org/ schema/ aop http: / / www. springframework. org/ schema/ aop/ spring- aop. xsd">
< ! -- 创建对象-- >
< bean id= "book" class = "com.test.dao.Book" > < / bean>
< bean id= "bookProxy" class = "com.test.dao.BookProxy" > < / bean>
< ! -- 配置aop增强-- >
< aop: config>
< ! -- 设置切入点-- >
< aop: pointcut id= "p" expression= "execution(* com.test.dao.Book.buy(..))" / >
< ! -- 设置切面-- >
< aop: aspect ref= "bookProxy" >
< ! -- 增强作用,在具体的方法上-- >
< aop: before method= "before" pointcut- ref= "p" / >
< / aop: aspect>
< / aop: config>
< / beans>