AspectJ和Tomcat结合简例!相对于JBossAOP和Tomcat要容易一点
来源:互联网 发布:淘宝充值平台怎么申请 编辑:程序博客网 时间:2024/05/14 02:27
由于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+))
&& args(p){
CategoryManager cm = CategoryManager.getInstance();
Category c = new CategoryImpl(p.getId(),p.getName());
cm.addCategory(c);
}
}
发布到tomcat的时候,只要把aspectjrt.jar copy到$tomcat_home/common/lib目录下就可以了
- AspectJ和Tomcat结合简例!相对于JBossAOP和Tomcat要容易一点
- 将nginx和tomcat结合
- Apache和Tomcat结合提高性能优化
- Apache和Tomcat结合提高性能优化
- Apache和Tomcat结合提高性能优化
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡收藏
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- [转帖]欧洲中世纪宗教饰品(哥特艺术精品展示)
- 经典水晶报表设计——去除图表的外框
- 利用Ant 和 JUnit进行增量开发
- 轻松加精确完成水晶报表对象的对齐、移动及大小调整——使用准线设计
- 水晶报表的5种表格设计模式
- AspectJ和Tomcat结合简例!相对于JBossAOP和Tomcat要容易一点
- 【学习】避免返回内部数据的句柄
- 一个大学教授让人发冷汗的讲演
- 探索软件设计模式(一)
- (转)游戏外挂设计技术探讨(上)
- Vrml 路在何方—正在做或准备做vrml的朋友看过来(一)
- 探索软件设计模式(二)
- other note
- Java软件架构设计慨论