問題タブ [aspectj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
329 参照

class - AspectJの問題

こんにちは、私は AspectJ を初めて使用します。Aspects を使用してクラスのバリアントを作成するかどうかを知りたいのですが、クラスの別のインスタンスも作成しますか?

0 投票する
2 に答える
1658 参照

spring - AOPで戦略パターンを実装する方法

誰かがAOPで戦略パターンを実装する方法を教えてもらえますか?

Spring-AOPまたはAspectJを使用した例は非常に役立ちます。

0 投票する
8 に答える
83110 参照

java - Spring AOP vs AspectJ

Spring AOPは、フレームワークとしてカスタムJava5アノテーションを使用するため、セキュリティ、ロギング、トランザクションなどのアプリケーション固有のタスクに最適であるという印象を受けています。ただし、AspectJは、よりフレンドリーなデザインパターンのようです。

SpringアプリケーションでSpringAOPとAspectJを使用することのさまざまな長所と短所を強調できる人はいますか?

0 投票する
3 に答える
3497 参照

jpa - Spring dm Server 1.x で EclipseLink JPA を使用する場合の Aspectj ロード時間織りに関する問題

Spring dm Server OSGi 環境内で EclipseLink JPA を動作させようとしています。

Spring Enterprise Bundle Repository からダウンロードされた関連するフレームワークとライブラリには、次のものがあります。

  • dm サーバー 1.0.2.SR02
  • AspectJ ランタイム 1.6.3
  • AspectJ ウィーバー 1.6.3
  • スプリング フレームワーク 2.5.6.A
  • Eclipse の持続性 1.1.0
  • Javax 持続性 API 1.99.0

EclipseLink JPA をセットアップするために、 PetClinic-1.5.0の例で示されたのと同じ構造に従いました。遅延フェッチが有効になるまで、すべてが機能します (プロキシされたオブジェクトが必要です)。

遅延フェッチが有効になると、次のエラーは、読み込み時間の織り込みが正しく機能していないことを示しています。

---- (読みやすくするために切り捨てられています)

例外 [EclipseLink-60] (Eclipse Persistence Services - 1.1.0.r3634): org.eclipse.persistence.exceptions.DescriptorException 例外の説明: メソッド [_persistence_setcustomer_vh] または [_persistence_getcustomer_vh] がオブジェクト [net.fractech で定義されていません。 .fds.backoffice.Job]. 内部例外: java.lang.NoSuchMethodException: net.fractech.fds.backoffice.Job._persistence_getcu stomer_vh() マッピング: org.eclipse.persistence.mappings.OneToOneMapping[顧客] 記述子: RelationalDescriptor(net.fractech.fds.backoffice.J ob --> [データベーステーブル(JOBS)])


これは、_persistence_getcustomer_vh() および _persistence_setcustomer_vh() メソッドが Job ドメイン オブジェクトに自動的に組み込まれていないことを示しています。

質問

1.) load-time-weaving が実際に機能しているかどうかを判断するにはどうすればよいですか? さらに、どの負荷時間ウィービング エージェントとウィーバーが開始されたかをログに記録するにはどうすればよいですか? このウィーバーにスイッチを渡してデバッグ情報を出力させるにはどうすればよいですか?

<context:load-time-weaverspectj-weaving="on" /> で load-time-weaving を開始したと思います

2.) 多くの検索により、dm サーバーを使用する場合、-javaagent パラメーターを jvm に渡す必要がないことが明らかになりました。これは正しいです?

3.) com.springsource.org.eclipse.persistence;version="[1.1.0,1.1.0]";import-scope: をアサートすることにより、別のバンドル内のドメイン オブジェクトが Eclipse 永続性クラスにアクセスできることを保証しました。 =application を eclipselink バンドルに追加し、PAR 内のすべてのアプリケーション バンドルを含めます。Spring dm Server で EclipseLink JPA を有効にするために必要なその他の構成はありますか?

0 投票する
1 に答える
238 参照

java - このポイントカットを改善する方法はありますか?

メソッドの入口/出口をトレースするために使用する次のポイントカットを思いつきました。それは壊れておらず、私が望むこともしますが、1-不器用に見えるか、よりエレガントになる可能性があります。2-防弾かどうかはわかりません。

何かご意見は?

0 投票する
3 に答える
6507 参照

java - java.lang.NoClassDefFoundError: ProceedingJoinPoint

主な顧客向けアプリケーションとバックエンド Web サービスとの間のインターフェースとなる、多数の Web サービス クライアント アプリケーションがあります。これらの Web サービス アプリケーションは、独自の JAXWS スタブ コードを生成して、Web サービスおよび実装コードと直接やり取りし、JAXWS コードとそれを使用する任意のアプリケーションとの間のクリーンなインターフェイスを提供します。ここ数週間、これらに関していくつかの小さな問題がありましたが、それらのほとんどは解決されました。

これらを顧客向けアプリケーションに統合する段階になったとき、主に JDK1.5 と 1.6 の非互換性に焦点を当てた多数の問題に遭遇しました。これらは現在解決されていますが、解決策のない別の問題が発生しています。Web サービス クライアントは AOP を使用して、ヘッダー資格情報、例外処理、スロットリングなどの一般的な設定を行います。

各アスペクトは POJO Bean を参照します。これらの Bean には、org.aspectj.lang.ProceedingJoinPoint のメソッド パラメータ タイプを使用して構成に記述されたメソッドが含まれます。これは、インターセプトしているメソッドの引数を抽出するために使用されます。

これらは、Web サービス クライアントごとに 1 つずつあります (applicationContext-webservicename.xml 内)。この xml ファイルは、パッケージ化された JAR に含まれています。この JAR は顧客向けアプリケーションに含まれ、顧客向けアプリケーションの web.xml によってロードされるメインの applicationContext.xml にインポートされます。

これらの Web クライアントには多数の単体テストがあり、すべて合格しており、個別に問題がないことを証明しています。すべてのサービスが顧客向けアプリケーションに含まれている場合、起動時に java.lang.NoClassDefFoundError: ProceedingJoinPoint 例外が発生します (JDK1.5.0_17 で tomcat 5.5 を使用しています)。

特別な意味がある場合に備えて、java.lang.NoClassDefFoundError の JavaDoc を調べました。JVM がクラスが存在しないと考えているようです。次に、見つからないと主張しているクラス(aspectjrt-1.5.4.jarおよびaspectjweaver-1.5.4.jar)を含むjarを探しました。これらのクラスの重複があるため、各jarを順番に削除して確認しましたまったく同じエラーが発生します。

必要な依存関係がありませんか? この問題の一般的な原因はありますか (昨日これを検索しましたが、あまり見つかりませんでした)。どんな助けでも大歓迎です。

0 投票する
2 に答える
3120 参照

spring - Spring - 実行時にアスペクトが適用されない

私は次の構成を持っています:

また、次の Bean 定義があります。

@SomeAnnotation実行時にアノテーション付きメソッドに動作が適用されていないことがわかります。理由はありますか?

どうも。

0 投票する
1 に答える
163 参照

aspectj - AspectJのポリモーフィズム

私はAspectJのタイプにディスパッチするためのより良い方法を決定しようとしています。3種類のノードを持つツリーで計算を実行しているとします。次に、簡単なJavaメソッドを記述できます。

また

または、各ノードタイプにメソッドを挿入できます。

どの方法が好ましいのか、そしてその理由は?

0 投票する
1 に答える
1885 参照

reflection - AspectJの特権アスペクトを介してプライベートメンバーにプログラムでアクセスする方法は?

AspectJで次のことができるかどうか疑問に思っていました。RubyObject クラスのすべてのオブジェクトにメソッド .inspect() を追加しています。そのメソッドは #(CompleteClassName, var1=val1, var2=val2, …) のような文字列を吐き出すはずです

これまでのところ、 this.getClass().getFields() は必要なすべての可視フィールドを取得し、 this.getClass().getDeclaredFields() と Modifier.isPrivate(field.getModifiers())) を組み合わせると、すべてプライベートフィールド..

ここでの問題は、表示されているフィールドのようにプライベート フィールドの値を取得できないことです。私が使用しているリフレクション API は AspectJ の一部ではないため、私がここでいわゆる特権アスペクトを実行していることに気付いていないため、これは正常なことだと思います。

私は特権モードにいるので、this.privateVariableName を使用して必要なすべてのプライベート変数にアクセスできますが、変数名自体が変数内にある場合、プログラムでどのようにアクセスできますか?

ご協力いただきありがとうございます..

0 投票する
2 に答える
2499 参照

java - applicationcontext.getbean と @configurable を使用する利点

applicationcontext.getbeanで diを実行する Bean によって管理されていない Beanと比較して@configurableを使用する利点は何ですか? 誰かが長所と短所を挙げていますか?