posts - 12, comments - 4, trackbacks - 0, articles - 0

aspectj学习

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>


只有注册用户登录后才能发表评论。


网站导航: