0

メッセージ駆動型 Bean といくつかのセッション Bean で構成されるアプリケーションがあります。それらの 1 つには、データベースまたは FTP サーバーへのアクセスを担当する DAO オブジェクトがあります。

2つのアプリケーションが必要です。それらの唯一の違いは、DAO クラスのインスタンスです。展開段階でそのインスタンスを指定できますか?

私の目的は、コードの重複を避けることです。

4

1 に答える 1

1

DAO が単なる POJO の場合、EE6 を使用している場合は Class env-entry をお勧めします (そうでない場合は String env-entry を使用し、Class.forName を自分で実行します)。

<env-entry>
  <env-entry-name>daoClass</env-entry-name>
  <env-entry-type>java.lang.Class</env-entry-type>
  <!-- Specify a default, override at deployment time. -->
  <env-entry-value>com.example.project.DefaultDAO</env-entry-value>
</env-entry>

@Resource(name="daoClass")
private void setDAOClass(Class<com.example.project.DAO> daoClass) {
    this.dao = daoClass.newInstance();
}

または、DAO 実装が EJB である場合は、@EJBインジェクションを使用して、デプロイ時にバインディング名を指定できます。

于 2012-06-10T15:53:31.933 に答える