ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
本稿ではSpring FrameworkにおけるAOP(Acpect Oriented Programming)の使用方法を説明します。
AOPとは
AOPとは共通的な処理をAOPクラスにまとめて、あるクラスの特定のメソッドの開始前や開始後にその共通的な処理を実行させることが出来る仕組みです。
AOPのライブラリをpom.xmlに記述する
AOPを使用するためにはライブラリが必要です。
以下を参考にpom.xmlに記載してビルドしましょう。※Spring Bootでない場合。Spring Bootの場合は後述。
|
<!-- AOP --> |
※注意※ spring-aopのバージョンを3.1以上にすると「AnnotationAwareAspectJAutoProxyCreator」が見つからないエラーが発生する。情報求む。
Spring Bootの場合は以下の記述のみでOK。
|
<!-- AOP --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> |
AOPを使用する宣言
※Spring Bootの場合は不要
いくつか方法があるが、シンプルなものを紹介。
適当なコンフィグクラスを作成して以下の内容を記述する。(どこかしらのクラスでAOPを使用する宣言をする必要がある)
|
import org.springframework.context.annotation.ComponentScan; @Configuration } |
※@ComponentScanのパッケージ名は環境に合わせてください。
AOPクラスの作成
@Aspectアノテーションを付与すればAOPのクラスとして認識される。。
|
@Aspect @Before("execution(* com.example.springmvc2.*.*(..))") @After("execution(* com.example.springmvc2.*.*(..))") |
@Beforeはメソッドが実行される前に処理を実行する。
@Afterはメソッドが実行された後に処理を実行する。
executeはAOPを実行する条件を指定できる。※詳しくは後述
JoinPointクラスのgetSignatureメソッドを使用すると、実行したメソッドのオブジェクト情報が取得できる。
適当な本処理のメソッドを実行した際の出力結果は以下の通り。
|
Method Start:String com.example.springmvc2.HomeController.home(Locale,Model) 本処理 Method End:String com.example.springmvc2.HomeController.home(Locale,Model) |
AOPクラスに付与するアノテーション一覧
@Before:メソッドの実行前に処理を実行する。
@After:メソッドの実行後に処理を実行する。
@AfterReturning:メソッドの実行後に処理を実行する。(正常終了した場合のみ)
@AfterThrowing:例外がスローされた場合のみ処理を実行する。
@Around:メソッドの実行タイミングを自分で指定し、前後に処理を記述する。
executeの条件指定
execute内の記述でAOPの起動条件を指定できる。
|
@Before("execution(* com.example.springmvc2.*.*(..))") |
左から順に、
戻り値の型、パッケージ、クラス名、メソッド名、メソッド引数
となる。
*はワイルドカード。
※executeの例をもう少し具体的に記載するべし。どなたかよろしくお願いします。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストール(eclipseプラグイン)
- クイックスタート
- プロジェクトの作成
- Spring Bootプロジェクトの作成
- Spring Bootプロジェクトの実行
- Spring BootでHello World!
- アノテーション一覧
- DB接続設定からエンティティおよびリポジトリの作成、値の取得まで(JPA編)
- DB接続設定や値の取得(JdbcTemplate編)
- ビューから値をモデルに格納しコントローラーで受け取る方法
- コントローラーにてモデルに値を格納してビューに渡す方法
- テンプレートエンジン
- ModelとModelAndViewの違い
- AOPの使用方法
- classpath: 内部ファイルの読み込み
- file: 外部ファイルの読み込み
- CSVファイルアップロード方法(Ajax)
- CSVファイルダウンロード方法(Ajax)
- Spring Bootプロジェクトのビルドと本番環境へのデプロイ方法(内部tomcat使用)
- Application.propertiesの環境依存設定の分割方法
- JPAにおけるEntityManagerの取得方法
- JPAにおけるjava.sql.Connectionの取得方法
- エラー一覧
- jarの引数を受け取る方法
- Spring BootでGmailからメール送信
- 複数のDBに接続する設定(Spring Boot & JPA編)
- ポート番号の変更
- Basic認証の実装と特定のURLに限定する方法
- Spring SecurityのBasic認証の無効化
- 独自のエラーページを定義する方法
- プロパティファイルの値やjar実行時の引数を取得する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?