Posted on 2007-12-08 13:42
Edward's 閱讀(209)
評論(0) 編輯 收藏 所屬分類:
Spring
1、添加jar包
Spring的核心包
$SPRING_HOME/dist/spring.jar,
$SPRING_HOME/lib/jakarta-commons/commons-logging.jar,
$SPRING_HOME/lib/log4jlog4j-1.2.14.jar
aspectj支持的jar包
$SPRING_HOME/lib/aspectj/*.jar
2、修改配置文件,對Aop提供代碼提示
xmlns:aop="
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
3、創(chuàng)建接口和實現(xiàn)類
接口
public interface UserManager {
public void addUser(String name);
public void delUser(int id);
}
實現(xiàn)類
public class UserManagerImpl implements UserManager {
public void addUser(String name) {
System.out.println("addUser " + name);
}
public void delUser(int id) {
System.out.println("delUser "+id);
}
}
PointCut和Advise的類
@Aspect
public class MyUserManager {
@Pointcut("execution(* add*(..))")
public void addUser(){}
@Before("addUser()")
public void myMethod(){
System.out.println("myMethod");
}
}
4、配置文件設置
<aop:aspectj-autoproxy />
<bean id="user" class="org.edward.UserManagerImpl" />
<bean id="aop" class="org.edward.MyUserManager" />
5、如果被代理的對象沒有實現(xiàn)的接口,就必須加入CBLIB的支持
加入$SPRING_HOME/lib/cglib/cglib-nodep-2.1_3.jar
修改配置文件
<aop:aspectj-autoproxy proxy-target-class="true" />
#Spring Aop
<bean id="user" class="org.edward.aop3.UserManagerImpl" />
<bean id="aop" class="org.edward.aop3.MyUserManager" />
<aop:config>
<aop:aspect id="log" ref="aop">
<aop:pointcut id="logHello" expression="execution(* add*(..))"/>
<aop:before pointcut-ref="logHello" method="myMethod"/>
<aop:after pointcut-ref="logHello" method="myMethod"/>
</aop:aspect>
</aop:config>