Java EE EJB understanding



我对使用Java EE开发企业应用程序非常陌生。我一直在使用jdeveloper。尽管我读了一些书,但我仍然发现很难理解一些模块的实际用途和好处。

如果有人能回答一些关于注释的问题(写在代码下面),那就太好了。

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在这里是什么意思。

您已被正确引导阅读一些Java EE教程。

如果需要搜索@Resources构造的名称,可以键入"JavaEE资源注入"或"JavaEE依赖注入"。直接回答没有意义,因为到处都是大量的读物。

在Java EE 5中,您可以使用像@EJB这样的注入语句。这简化了开发过程并避免了查找。

在Java EE 5之前,如果你想使用EJB,你必须首先进行查找以获得远程/本地接口,然后使用它。在Java EE 5中,你可以简单地声明@EJB和容器注入到EJB中的引用,你可以直接使用它。

@Resources也是如此。

如前所述,有大量的书籍和文章阐述了注射及其益处。

相关内容

  • 没有找到相关文章

最新更新