問題タブ [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.
eclipse - Eclipse での AspectJ ランタイム ライブラリのアップグレード
Eclipse に付属しているバージョンよりも新しいバージョンの aspectjrt にアップグレードしようとしています。maven pom.xml のバージョン番号を更新しました。Eclipse はそれを認識していないようで、クラスパスに組み込みバージョンが表示されます。
m2eclipse はどのバージョンのライブラリを使用していますか?
java - Spring Optimistic Locking:コミットが成功するまでトランザクションメソッドを再試行する方法
私はSpring2.5とHibernateJPAの実装をJavaと「コンテナー」管理トランザクションで使用しています。
バックグラウンドでデータを更新する「ユーザーコミット後」メソッドがあり、クライアントに表示されることはないため、例外にConcurrencyFailureException
関係なくコミットする必要があります。StaleObjectStateException
言い換えれば、楽観的なロックを悲観的にする必要があります。(メソッドの実行に少し時間がかかり、誰かが他のトランザクションでデータを変更した場合に発生する可能性があります)
べき等について多くのことを読みました。DEFAULT_MAX_RETRIESまたは6.2.7の検索で例外が発生した場合は、再試行してください。例または第14.5章。再試行します。私はこことここのstackoverflowでも見つけました。
私はこれを試しました:
RetryOnConcurrencyException
例外が発生した場合に再試行する必要があるメソッドをマークするためのアノテーションです。動作しませんでした...私もいくつかの方法を試しましたSELECT ... FOR UPDATE
、EntityManager.lock(...)
Springでこのような戦略を使用して、古いデータやダーティリードなどを回避するための最良の方法は何ですか?再試行?、同期?、JPAロック?、分離?、更新のために...を選択しますか?私はそれを機能させることができませんでした、そして私はどんな助けにも本当に満足しています。
これが私がやりたい擬似コードです:
//XXXと//YYYの間で、別のセッションがアイテムを変更する可能性があり、StaleObjectStateExceptionがスローされます。
maven-2 - -xmlConfigured を maven に組み込む
maven-aspectj-plugin に ajc のオプション -xmlConfigured を指定するオプションはありますか?
そうでない場合、maven を使用して ajc の最新バージョンでアスペクト コードをコンパイルするための一般的な方法は何ですか?
java - 私はaspectjrt.jarも追加しましたが、Spring Aopポイントカットを使用するとエラーが発生します
この問題を解決できません エラー :
java.lang.IllegalStateException: ContainerBase.addChild: 開始: org.apache.catalina.LifecycleException: javax.xml.parsers.FactoryConfigurationError: プロバイダー org.apache.xerces.jaxp.SAXParserFactoryImpl が org.apache.catalina.core.ContainerBase に見つかりません.addChildInternal(ContainerBase.java:932) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694) at com. com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605) の com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933) com.sun.enterprise.web.WebApplication.start(WebApplication. java:90) org.glassfish.internal.data.EngineRef.start(EngineRef.java:126) で org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:241) at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339) com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) で org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272) で com.sun.enterprise.v3.admin で.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl. java:1176) (com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900)(CommandRunnerImpl.java:83) (com.sun.enterprise.v3.admin)。CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235) com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224) com.sun.enterprise.v3.admin.AdminAdapter.doCommand( AdminAdapter.java:365) com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) com .sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) com.sun.grizzly.http com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) の com.sun.grizzly.http.ProcessorTask の .ProcessorTask.invokeAdapter(ProcessorTask.java:791)。process(ProcessorTask.java:954) com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) com.sun.grizzly .DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com. sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) com.sun.grizzly.ContextTask.run(ContextTask.java:69) com で.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) com.java.lang.Thread.run(Thread.java:619) での sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
java - プログラムを再起動せずに AspectJ を無効にする方法は?
さまざまな方法をアドバイスするために、読み込み時間の織り方でAspectJを使用するアプリケーションがあります。ソースコードを変更したり、プログラムを再起動したりせずに、アスペクトを無効にするスイッチをプログラムに追加したいと考えています。オフになっている間は、オーバーヘッドをできるだけ少なくする必要があります。ありがとう!
java - インターフェイスを静的に実装するクラスのすべてのコンストラクターの AfterAdvice
ドメイン オブジェクトの認証チェックを行いたいと考えています。これには、誰かがオブジェクトのインスタンス化を許可されているかどうかのチェックが含まれます (オブジェクトのタイプに応じて - このチェックは外部で行われるため、これを解決する必要はありません)。
すべてのドメイン オブジェクトは、1 つの特定のインターフェイスを (直接的または間接的に) 実装します。
私が必要としているのは、ドメイン オブジェクトのインスタンス化の後に実行され、作成されたインスタンスを使用できるアドバイスです (権限の決定に必要です)。(さらに、コンストラクターが休止状態から呼び出されると、アドバイスが実行されない場合があります)
ランタイムに依存する変更がないため、理想的には静的分析のみを使用して、AspectJ(メソッドに対してはまだ機能しています)を使用してこれを実装したいと思います
今、コンストラクター呼び出しをインターセプトする @AfterReturning adivce を作成しようとしています。しかし、ポイントカットが機能しません。
私が試したこと:
しかし、どちらも機能しません。
どうすればこれを達成できるか知っている人はいますか?
よろしくマイケル
java - アノテーション付きコントローラーに関する Spring AOP アドバイス
注釈付きコントローラーの後に AOP を使用して何らかの処理を実行しようとしています。すべてがエラーなしで実行されていますが、アドバイスは実行されていません。
コントローラーのコードは次のとおりです。
およびapplication-configでのセットアップ
そして実際のアドバイス
注釈付きのコントローラーについてアドバイスを受けることさえ可能ですか? Spring 2.5を使用しています。
java - aop.xml を使用した AspectJ での読み込み時間の織り込み
私が理解していることから、aop.xml ファイルを使用してロード時の織り込みを機能させるには、META-INF に配置する必要があります。これを回避し、任意のディレクトリで aop.xml (または任意の xml ファイル) を使用する方法はありますか? ありがとう。
java - ローカル変数の注釈を含む AOP
ローカル変数の注釈を使用して、AOP を改善したいと考えています。1 つのアイデアは、注釈を使用してプロキシを使用して Future<T> の概念を実装することです。
これで AspectJ を何らかの形で病気にして、ローカル変数の注釈でやりたいことを実現できますか? 他のスレッドが、Java がそれらを実際にはサポートしていないことを示していることは知っていますが、それは魔法のようです。Future を渡してカプセル化を破りたくありません。
java - AspectJ を使用して JOptionPane のボタンを変更する方法
アプリケーション内のすべての JButton の動作を変更する必要があります (これは研究プロジェクトです)。262 個のインスタンスすべてを新しいタイプに変更する必要がないため、アスペクトを使用してすべてのボタンを変更するのが最善の方法であると考えました。問題が発生しました。作成したアスペクトは、プロジェクト内の他のすべてのボタンのように JOptionPane 内のボタンを変更しません。これが私が持っているアドバイスです:
これは、JButton の他のすべてのコンストラクターと一致しますが、JOptionPane で使用されるコンストラクターが欠落しているようです。彼らの作品にアクセスするにはどうすればよいですか? 私はまだ AOP に慣れていないので、これを行うことさえできないかもしれません。