Springにおけるトランザクション管理の実装と制御メカニズム

Spring FrameworkはJDBC操作を抽象化し、データベースアクセスを簡素化しますが、その過程で必ず直面する課題がトランザクション制御です。Springはこの要件に対応するため、柔軟かつ多層的なトランザクション管理機能を提供しています。 1. トランザクションの設定手法 Springでは、トランザクションの適用方法を大きく「宣言型」と「プログラム型」に分類できます。ど ...

6月9日 18:03 投稿

Spring AOP の自動設定とプロキシ生成メカニズム

Spring Boot では、AOP 機能を有効にするために AopAutoConfiguration という自動設定クラスが提供されている。このクラスは特定の条件が満たされた場合にのみ有効化され、AspectJ ベースの AOP を自動的に設定する。 @Configuration @ConditionalOnClass({ EnableAspectJAutoProxy.class, Aspect.class, Advice.class, AnnotatedElement.class }) @ConditionalOnProperty ...

6月7日 20:49 投稿

外部に公開してはならないAPI endpointの対処法

システム開発において、特定のAPIを外部ネットワークに公開せず、内部サービス間でのみ利用できるようにしたい場合、代表的な3つのアプローチが存在する。 内部向け・外部向けでマイクロサービスを分離する ゲートウェイとRedisを活用したホワイトリスト方式 ゲートウェイとAOPによるリクエスト元判定 以下で、それぞれの方案の特徴と実装方法について詳しく解説する。 1 ...

5月23日 20:00 投稿

HyperfにおけるInjectアノテーションの内部仕組み解説

HyperfのInjectアノテーションがnew演算子によるインスタンス生成時にでも動作する仕組みについて、開発者が以下の仕組みを解説しています。 プロキシクラス生成の条件 Hyperfはすべてのクラスに対してプロキシクラスを生成しません。/runtime/container/proxyディレクトリに保存されるプロキシファイルは、AOP(Aspect Oriented Programming)が必要なクラスに限定され ...

5月18日 03:00 投稿

Spring AOP入門とその実装方法

AOPの基本概念と重要性 アスペクト指向プログラミング(AOP)はJavaだけでなく、他の言語でも利用されています。例えば、ASP.NETのパイプラインモデルにおいても、認証やログ出力などの共通処理を横断的に処理するために利用可能です。本記事では、AOPの具体的な仕組みや用語の説明は一旦置いておき、導入の背景と実装方法に焦点を当てます。 横断的処理と縦断的処理 まず ...

5月14日 00:14 投稿