0

プロジェクトをプログラミングし、多層アーキテクチャを適用しようとしています。現在、iveは2つのEJB、ビジネスと永続性、および共有jarを取得しています。機能的な要件があるため、永続性は交換可能である必要があります。IPersistenceというインターフェイスを作成しました。次に、永続性EJB内に「永続性」と呼ばれるリモートセッションBeanを作成し、リモートインターフェイスを共有ライブラリに配置しました。今、私はビジネスからの注入を使用してIPersitenceを呼び出す必要があります。どうやってやるの?たぶん全体の考えは間違っています。アドバイスが必要です。

ありがとう!

4

1 に答える 1

1

これは、データベース、ファイル、XMLなどに格納されているかどうかを公開しないことで、ビジネスロジックから永続性を抽象化する自動車リポジトリ/ DAOがある簡単な例です。次に、ビジネスクラスは、次のことができるようにインスタンスを挿入します。この場合-データベースに保存します。ただし、CarRepositoryを実装し、コードの他の部分に触れることなくアプリケーションにデータを保存するための他の手段を提供する他のクラスを作成することもできます。

永続層

リポジトリ/DAOのインターフェース

@Local
public interface CarRepository {
    List<Car> findAllCars();

    // Many other methods
}

リポジトリ(ドメイン駆動設計)またはデータアクセスオブジェクト

@Stateless
public class CarSqlRepository implements CarRepository {

    @PersistenceContext(unitName = "MyUnit")
    private EntityManager entityManager;

    public List<Car> findAllCars() {

    }

    // Many other methods
}

サービス/ビジネスレイヤー

@Stateless
public class CarService {

    @Inject
    private CarRepository carRepository;

    public List<Car> findAllCars() {
        return carRepository.findAllCars();   
    }

    // Many other methods
}
于 2012-06-23T17:08:51.243 に答える