Since JBoss AOP is temporarily restricted, if you can't take a system class, it is more difficult to use Tomcat, first use aspectj to practice, it is indeed convenient, the following code mainly shows how to practice the probably framework, simple to extreme.
1.PositionManagerpublic 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 actual implementation PositionManager business logic 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 address (position p) {system.out.println ("add position"); if (! Positions.contains (p)) positions.add (p);}} 3.categoryManagerPublic 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: The most critical aspect declaration, mainly explains how to intercept subclasses, how to get parameters calling, etc. Without Call, use Execution.