Posted on 2007-12-08 13:42
Edward's 阅读(205)
评论(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
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
3、创建接口和实现类
接口
public interface UserManager {
public void addUser(String name);
public void delUser(int id);
}
实现类
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、如果被代理的对象没有实现的接口,就必须加入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>