帶你走進EJB--EJB例項
在<<帶你走進EJB>>系列博文中,前面系列的文章已經為EJB做了很多的鋪墊,我們的線路是逐漸的從巨集觀往細節入手.接下來將會從無狀態會話Bean作為一個例子,通過這個例子瞭解EJB的過程.
執行EJB的伺服器用的是Jboss.關於Jboss的相關內容讀者可以自行查閱,這裡不再贅述.
首先我們需要先建立一個EJB專案.
我們是要建立一個會話Bean,那麼需要要先定義一個包含他所有業務方法的一個介面,在這裡,這個介面跟我們普通的介面沒有什麼區別,也不需要任何的註釋.
介面程式碼如下:FirstEjb
package com.tgb.ejb; /** * 第一個EJB介面 * @author jnqqls * */ public interface FirstEjb { public String SaySomething(String str); }
接下來需要做的是實現上面所提到的介面,並且添加註釋.在這裡註釋有兩個@Stateless,@Remote.
@Stateless定義的是一個無狀態的會話Bean.
@Remote定義的是這個無狀態會話Bean的Remote介面.
下面是FirstEjb會話Bean的具體程式碼:
package com.tgb.ejb; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless(name="FirstEjbBean") @Remote(FirstEjb.class) public class FirstEjbBean implements FirstEjb { /** * 第一個Ejb例子 */ public String SaySomething(String str) { return "你好"+str; } }
至此,只存在一個Remote介面的無狀態會話Bean我們已經開發完成,無狀態的會話Bean是一個簡單的POJO,EJB3.0容器能夠自動的例項化以及管理這個Bean.
開發完畢之後我們將此會話Bean釋出到Jboss中.
在啟動Jboss的過程中觀察一下輸出介面,如果沒有什麼異常的話,釋出成功.
至此我們的EJB已經發布成功,同時作為一個服務存在與Jboss容器中.接下來我們會介紹如何通過客戶端來訪問我們所釋出的EJB.
這裡需要進一步解釋一下,當我們把一個無狀態的會話Bean釋出到容器的時候,EJB容器會建立一個物件,並且把物件註冊到JNDI目錄裡.客戶端可以通過JNDI找到該物件
所以在客戶端我們需要提供JNDI的相關資訊,而這些資訊都放在了jndi.properties檔案中,此檔案放在客戶端的根目錄下.檔案內容如下.
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
接下來建立客戶端:ejb_01_client
package com.tgb.ejb;
import javax.naming.InitialContext;
public class FirstEjbClient {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
InitialContext context = new InitialContext();
FirstEjb ejb = (FirstEjb)context.lookup("FirstEjbBean/remote");
String s = ejb.SaySomething("jnqqls");
System.out.println(s);
}
}
執行客戶端便可以看到結果.讀者可以自己嘗試一下.
以上的過程是EJB例項的一個簡單的實現.通過此例項我們能夠了解EJB具體程式碼上的實現.