EJBを使用してインターセプタを使用するかどうかを知りたいのですが、EJBをインターセプタにのみ使用する
私は@TransactionAttribute(NEVER)
を使用してトランザクション管理をオフにしているため、不要なトランザクション管理機能はありません。
私はこれが春にできることを知っています。しかし、私はまだ私のアイデアが良いかどうかを知りたいです。
これが悪い考えであれば、誰でもJEE仕様の一部であるAPIを使用してこれを行う方法を教えてください。 JEE APIを使用してこれを行うことができない場合は、Springを使用しても構いません。
私のアプリケーションにはロギングコードがたくさんあるので、インターセプタが必要です。リクエストが来るたびに、私はテーブルにレコードを残しておかなければなりません。
P.S.
私はEJBが初めてです。私はEJBで、トランザクション管理やインターセプタなどの機能を利用できることを知っています。
サービスがRESTおよびSOAP Webサービスとして公開されているアプリケーションがあります。リモートEJBを使用してサービスをリモートサービスとして公開する予定もあります。
各サービスにはいくつかのログコードが書き込まれています。ロギングコードは、メソッドが返される前に基本的に詳細をテーブルに記録します。また、私たちはいくつかの3pp Webサービスを呼び出すいくつかのサービスを持っています。これらの詳細を別の表に記録します。ロギングコードは、すべてのサービスメソッドに記述されます。
私は、インターセプタを導入し、適切なインターセプタにロギングコードを移動するというアイデアを思いつきました。最初は、いくつかのメソッドにインターセプタを導入しました。コードは正常に動作しています。これらのインターセプタを使用するためにすべてのサービスを書き直したいと思います。
ここでは、メソッドをインターセプトするためにのみEJBを使用することをお勧めします。私は、インターセプタ以外の他のEJB機能を使用したくありません。そこで私は@TransactionAttribute(NEVER)
で取引管理を無効にしました。私のクラスは
@Stateless
@TransactionAttribute(TransactionAttributeType.NEVER)
public class StudentServiceBean {
@ReportingInterceptor
public Student getStudent(String id) {
}
}
@Stateless
@TransactionAttribute(TransactionAttributeType.NEVER)
public class StudentBackendBean {
@BackendInterceptor
public Student getStudent(String id) {
}
}
は以下
- 私は トランザクション管理の旋回横に検討すべきである他の任意のものがあり、私の質問です下のようになりますか?
- のインターセプタを利用する場合にのみEJBを使用することをお勧めしますか?
- アプリケーションには の100個のサービスが含まれているため、アプリケーションの規模はどのようになりますか? (私はスケーリングが利用可能なリソースに基づいて を利用していることを知っています)
リモートejbsとしてサービスを公開する計画があるため、私はフィルタを使用できません。フィルタはリモートejb呼び出しを傍受できないので、私はフィルタを使いたくありません。
誰でも光を当てることができますか? –
誰でも光を当てることができますか? –
わかっていれば、EJBを使ってログレイヤーを作成したいと思っています。 AFAIK、インターセプタはEJB(例えばセッションBeansやMessage-Driven Bean)を傍受することができるため、「傍受者のみを使用するejb」の意味を理解していません。あなたはいくつかの詳細を提供できますか? – Jaumzera