#大標=Java EE5的關鍵技術 EJB 3.0 Simplified API概觀 #眉標=Java #副標= Java EE 5伺服器端開發技術大躍進(4) #作者=文/廖峻鋒 ===========box程式1========== public interface CalculatorRemote     extends javax.ejb.EJBObject {   public int add(int i,int j)     throws java.rmi.RemoteException; } ===============end============= ============box程式2========== public interface CalculatorHome extends javax.ejb.EJBHome {  CalculatorRemote create()    throws java.rmi.RemoteException,       javax.ejb.CreateException; } ===============end=============== =============程式3============= public class CalculatorBean implements javax.ejb.SessionBean {  private javax.ejb.SessionContext ctx;  public void ejbCreate() {}  public void ejbRemove() {}  public void ejbActivate() {}  public void ejbPassivate() {}  public void setSessionContext(javax.ejb.SessionContext ctx) {   this.ctx = ctx;  }    public int add(int i,int j){ return i+j;  }   } =============end=========== ============box程式5========= @Remote public interface Calculator{ public int add(int i, int j); } ===============end============= ==============box程式6=========== @Stateless public class CalculatorBean implements CalculatorRemote { public int add(int i, int j){ return i+j; } } ===============end============== ==========box程式7=========== @Stateless public class CalculatorBean implements CalculatorRemote{   @PostConstruct public void myPostConstruct (){ … (相關處理)…   } @PreDestroy public void myPreDestroy(){ … (相關處理)…   } @Resource private SessionContext ctx; public int add(int i, int j){ return i+j; } } ===============end============== =============box程式8========= CalculatorBean myPreDestroy         myPostConstruct        =============end=============== =========box程式9============ public class MyLogInterceptor {  @AroundInvoke  Object log(javax.interceptor.InvocationContext invocation) throws Exception{ System.out.println(“呼叫EJB服務名稱: “+ inv.getMethod().getName()); return inv.proceed();  } } =============end=============== =========box程式10========== public interface InvocationContext{  public Object getTarget();  public Method getMethod();  public Object[] getParameters();  public void setParameters(Object[] newArgs);  public void Map getContextData();  public Object proceed() throws Exception; } =============end============ =========box程式11========== @Interceptor(MyLogInterceptor.class) @Stateless public class CalculatorBean implements CalculatorRemote{  …(略) } ===========end===========