0

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ここでの意味は何ですか。

4

2 に答える 2

0

いくつかの Java EE チュートリアルを読むように正しく指示されました。

検索するコンストラクトの名前が必要な場合は、@Resources「Java EE リソース インジェクション」または「Java EE 依存性インジェクション」と入力できます。どこにでもたくさんの読み物があるので、直接答える意味はありません。

于 2012-09-12T09:11:01.450 に答える
0

Java EE 5 では、@EJB のようなインジェクション ステートメントを使用できます。これにより、開発プロセスが簡素化され、ルックアップが回避されます。

Java EE 5 より前では、EJB を使用する場合は、最初にルックアップを作成してリモート/ローカル インターフェイスを取得し、それを使用していました。Java EE 5 では、@EJB を宣言するだけでコンテナが EJB に参照を注入し、それを直接使用できます。

同じことが @Resources です。

前述のように、注射とその利点を説明する本や記事はたくさんあります。

于 2012-09-14T13:00:39.317 に答える