2012-09-12 97 views
0

我對使用Java EE開發企業應用程序很陌生。我一直在爲此使用jdeveloper。雖然我已經讀過一些書,但我仍然很難理解某些模塊的實際使用和好處。Java EE EJB理解

如果您有人可以回答關於註釋的一些問題(寫在代碼下面),那將是非常棒的。

import javax.annotation.Resource; 

import javax.ejb.EJB; 
import javax.ejb.SessionContext; 
import javax.ejb.Stateless; 

import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebService; 

import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 

@Stateless(name = "StudentWSApiBean", mappedName = "RizwanWS-RizwanService-StudentWSApiBean") 
@WebService(name = "StudentWSApi", serviceName = "StudentWSApi", portName = "StudentWSApiPort") 
public class StudentWSApiBeanBean implements StudentWSApiBean { 
    @Resource 
    SessionContext sessionContext; 

    @EJB 
    StudentSession mySession; 

    public StudentWSApiBeanBean() 
    { 
    } 

    @WebMethod 
    public StudentResponse saveStudentInfo(@WebParam(name = "arg0") 
     StudentRequest rqst) 
    { 
     StudentResponse resp = new StudentResponse(); 
     resp.setStat(0); 
     try 
     { 
      int ret = mySession.saveStudentInfo(rqst.getName(), rqst.getAddr(), rqst.getClass_(), rqst.getGrade());   
      resp.setStat(ret); 
     }catch(Exception exc) 
     { 
     } 
     return resp; 
    } 
} 

在上面的代碼,

@EJB 
StudentSession mySession; 

然後我使用,

mySession.saveStudentInfo(rqst.getName(), rqst.getAddr(), rqst.getClass_(), rqst.getGrade()); 

即我使用MySession的訪問StudentSession的方法。現在,在這裏做@EJB註釋有什麼好處,我不清楚。

@Resource 
SessionContext sessionContext; 

我還沒有看到使用sessionContext除了聲明的代碼中的任何地方。 這裏的@Resource是什麼意思。

+0

因爲沒有使用SessionContext,所以它真的很誇張。至於EJB註釋,網上有很多參考資料。如果您已經查看過,並對細節有疑問,請將它們發佈到此處,但SO不是個人研究助理。 – kostja

回答

0

您已被正確引導閱讀一些Java EE教程。

如果您需要@Resources構造的名稱進行搜索,則可以鍵入「Java EE資源注入」或「Java EE依賴注入」。沒有直接回答的要點,因爲到處都有大量的閱讀。

0

在Java EE 5中,您可以使用注入語句(如@EJB)。這簡化了開發過程並避免查找。

在Java EE 5之前,如果您想使用EJB,您需要首先進行查找以獲取遠程/本地接口,然後使用它。在Java EE 5中,您可以簡單地聲明@EJB,而容器將注入到EJB中並且可以直接使用它。

同樣的事情@Resources。

如說有很多書籍和文章expalining注射及其好處。