#大標=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
post-construct >
=============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===========