Javaプラットフォームでの使用例(Groovyを述べたので)は、AspectJとJVM計測器のようなものでロード時に織り成すことです。ただし、この場合は、代わりにコンパイル時の織り方を使用することもできます。興味深いことに、私の最近のSOの質問の1つは、このロード時間織りの使用に関する問題に関連していました。
ロードタイム(ランタイム)ウィービングを使用して開発者に役立つサービスを提供するAspectJの例は、SpringのBeanFactoryでインスタンス化されていないオブジェクトでDependency Injectionを使用できるSpringの@Configurationアノテーションです。
具体的には、メソッドの変更(または動作の仕方)について言及しています。使用されている例は、ハンドラ(一部のコントローラメソッドまたはdoPostなど)に送信される前にHTTPリクエストを傍受し、ユーザーがそのリソースにアクセスする権限を持っているかどうかを確認します。あなたの側面は、早期に、ログインするためのリダイレクトを返すことを決定することができます。メソッド自体の内容を変更するのではなく、それ以外の場合に返される戻り値を変更する方法の変更方法は変わりません。
私は知っていますが、それは私がここで求めているものではありません。 – Eyvind
多分それをやや狭めれば:具体的には、 "delper [sic]にサービスを提供する"ために、IEnumerableインターフェースにサンドキーパッチを適用した拡張メソッドを多用しています。 –
私は分かりませんが元のクラス/インタフェースに変更が加えられていないため、これは実際には猿のパッチ適用と見なされます。 (誤字を指摘してくれてありがとう、BTW :) – Eyvind