我对使用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也是如此。
如前所述,有大量的书籍和文章阐述了注射及其益处。