您的位置:首页 >> 编程开发 >> Java >> JBoss >> 正文
RSS
 

AspectJ和Tomcat结合简例!相对于JBossAOP和Tomcat要容易一点

http://www.rdxx.com 02年11月05日 10:41 互联网 我要投稿

关键词: JBoss , AspectJ , Tomcat , AOP , CA , ASP , JB

由于JBoss AOP暂时的一些限制,比如不能截取系统类,和Tomcat结合起来使用比较困难,先用AspectJ来实践了一下,确实比较方便,下列代码主要展示如何实践的大概框架,简陋至极。

1.PositionManager
public abstract class PositionManager {
    protected static PositionManager self = null;
    public abstract void addPosition(Position p);    
    public static PositionManager getInstance(){
        if(self == null)
            self = new PositionManagerImpl();
        return self;
    }   
}

2.PositionManagerImpl实际实现PositionManager的业务逻辑
public class PositionManagerImpl extends PositionManager {
    protected ArrayList positions = new ArrayList();
   
    /* (non-Javadoc)
     * @see com.airinbox.jaidwapfactory.position.PositionManager#addPosition(com.airinbox.jaidwapfactory.position.Position)
     */
    public void addPosition(Position p) {
        System.out.println("add position");
        if(!positions.contains(p))
            positions.add(p);
    }
}

3.CategoryManager
public abstract class CategoryManager {
    protected static CategoryManager self = null;    
    public abstract void addCategory(Category c);
    public static CategoryManager getInstance() {
        if(self == null)
            self = new CategoryManagerImpl();
        return self;
    }
}

4.CategoryManagerImpl
public class CategoryManagerImpl extends CategoryManager {
    protected ArrayList categories = new ArrayList();
   
    /* (non-Javadoc)
     * @see com.airinbox.jaidwapfactory.Category.CategoryManager#addCategory(com.airinbox.jaidwapfactory.Category.Category)
     */
    public void addCategory(Category c) {
        System.out.println("add category");
        if(!categories.contains(c))
            categories.add(c);
    }
}

5.PositionAspect:最关键的aspect的声明,主要说明了如何截取子类的实例,如何获得方法调用的参数等等,由于方法可能会在Jsp中调用,减少麻烦,pointcut声明的时候一般不用call,而用execution。
public aspect PositionAspect {        
    after(Position p) :
        execution(void PositionManager+.addPosition(Position+))

共2页  1 2

 
 
标签: JBoss , AspectJ , Tomcat , AOP , CA , ASP , JB 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站